static void Main(string[] args) { // https://belgium.mfa.gov.ua/ var webPageHandler = new WebPageHandler("https://belgium.mfa.gov.ua/"); Console.WriteLine($"Hello! I`m starting work on {webPageHandler.Url} page."); var emailAddresses = webPageHandler.GetHrefMailToAddresses(); var addressesCsvFile = new CsvFile(';'); addressesCsvFile.Headers.Add("Email"); foreach (string emailAddress in emailAddresses) { addressesCsvFile.Rows.Add(new List <string>() { emailAddress }); } if (!Directory.Exists("output")) { Directory.CreateDirectory("output"); } addressesCsvFile.SaveToFile(@"output\emails.csv"); Console.WriteLine("Well, copy emails.csv file from output directory to input directory of lab2-email-sender-console project and run it."); }
private void ReadPrices() { DecimalMeasurements measurements = new DecimalMeasurements(); try { using (WebPageHandler teboilPage = new WebPageHandler("https://tilaus.teboil.fi/cgi-bin/nph-cgi/hintalaskuri")) { teboilPage.OpenWebBrowser(); teboilPage.EnterTextToControl("/html/body/form/div[4]/div/div/div[2]/table/tbody/tr[4]/td/table/tbody/tr[2]/td[2]/input", "1000"); teboilPage.EnterTextToControl("/html/body/form/div[4]/div/div/div[2]/table/tbody/tr[4]/td/table/tbody/tr[3]/td[2]/input", "87500"); teboilPage.ClickItem("/html/body/form/div[4]/div/div/div[2]/table/tbody/tr[4]/td/table/tbody/tr[15]/td[2]/span/span/table/tbody/tr/td/a"); string text = teboilPage.GetText("/html/body/form/div[4]/div/div/div[2]/table/tbody/tr[4]/td/table/tbody/tr[21]/td[2]/table/tbody/tr/td/table/tbody/tr[3]/td[3]"); string[] stringSeparators = new string[] { "\r\n" }; string[] lines = text.Split(stringSeparators, StringSplitOptions.None); string[] teboilPrices = lines[0].Split(' '); decimal teboilPrice = Convert.ToDecimal(teboilPrices[3].Replace(".", ",")); AddTeboilListBoxPrice(teboilPrice.ToString()); teboilPage.CloseWebBrowser(); measurements.AddMeasurement("Teboil", teboilPrice); } } catch (Exception ex) { Console.WriteLine(String.Format("Exception: {0}", ex.ToString())); measurements.AddMeasurement("Teboil", 0.0); AddTeboilListBoxPrice("---"); } try { using (WebPageHandler lampopuistoPage = new WebPageHandler("https://www.lampopuisto.fi/fi/yksityisille/lammitysoljyn-hinta")) { lampopuistoPage.OpenWebBrowser(); lampopuistoPage.ClickItem("/html/body/div[1]/div/nav[2]/ul/li[1]/a"); lampopuistoPage.EnterTextToControl("/html/body/div[1]/section[2]/div[1]/form[1]/div[2]/div/div/input", "87500"); lampopuistoPage.ClickItem("/html/body/div[1]/section[2]/div[1]/form[1]/div[4]/div[1]/div[2]/div/label"); lampopuistoPage.EnterTextToControl("/html/body/div[1]/section[2]/div[1]/form[1]/div[4]/div[2]/div[2]/div/input", "1000"); Thread.Sleep(2000); string lampopuistoPrices = lampopuistoPage.GetText("/html/body/div[1]/section[2]/div[3]/div/form/div[4]/div"); decimal lampopuistoPrice = Convert.ToDecimal(lampopuistoPrices); AddLampopuistoListBoxPrice(lampopuistoPrice.ToString()); lampopuistoPage.CloseWebBrowser(); measurements.AddMeasurement("Lampopuisto", lampopuistoPrice); } } catch (Exception ex) { Console.WriteLine(String.Format("Exception: {0}", ex.ToString())); measurements.AddMeasurement("Lampopuisto", 0.0); AddLampopuistoListBoxPrice("---"); } try { using (WebPageHandler nestePage = new WebPageHandler("https://www.neste.fi/lammitysoljytilaus")) { nestePage.OpenWebBrowser(); nestePage.EnterTextToControl("//*[@id=\"edit-county-number\"]", "87500"); nestePage.ClickItem("//*[@id=\"edit-submit\"]"); Thread.Sleep(6000); string nestePrices = nestePage.GetText("/html/body/div[1]/div/div/div[2]/div[2]/div[2]/div[2]/div/div/div[1]/div/div[4]"); string[] nestePriceList = nestePrices.Split(' '); nestePrices = (Convert.ToDecimal(nestePriceList[0]) * 1000).ToString(); decimal nestePrice = Convert.ToDecimal(nestePrices); // Delivery costs nestePrice += 50; AddNesteListBoxPrice(nestePrice.ToString()); nestePage.CloseWebBrowser(); measurements.AddMeasurement("Neste", nestePrice); } } catch (Exception ex) { Console.WriteLine(String.Format("Exception: {0}", ex.ToString())); measurements.AddMeasurement("Neste", 0.0); AddNesteListBoxPrice("---"); } metrics.SaveMetricsToInflux("Test", "oil-prices", measurements); }