public void Start() { entries.Clear(); HtmlWeb web = new HtmlWeb(); HtmlDocument htmlDoc; foreach (char c in PAGES) { var urlToScrape = $"{BASE_URL}/{c}"; log.Info($"Scraping Page {urlToScrape}"); htmlDoc = web.Load(urlToScrape); var tablerows = htmlDoc.DocumentNode.SelectNodes("//table/tr"); if (tablerows == null) { log.Info($"No table found at {urlToScrape}"); continue; } var tablerowsCount = tablerows.Count; log.Info($"{tablerowsCount} table rows found"); for (int i = 0; i < tablerowsCount; i++) { Import_RoutingNumber_DTO imp = new Import_RoutingNumber_DTO(); var row = tablerows[i]; imp.AchServicesTelephone = row.ChildNodes[WebColumnIndex.AchServicesTelephone].InnerText; imp.Address = row.ChildNodes[WebColumnIndex.Address].InnerText; imp.BankName = row.ChildNodes[WebColumnIndex.BankName].InnerText; imp.City = row.ChildNodes[WebColumnIndex.City].InnerText; imp.DateOfLastRevision = row.ChildNodes[WebColumnIndex.DateOfLastRevision].InnerText; imp.NewRoutingNumbers = row.ChildNodes[WebColumnIndex.NewRoutingNumbers].InnerText; imp.RoutingNumbers = row.ChildNodes[WebColumnIndex.RoutingNumbers].InnerText; imp.Zip = row.ChildNodes[WebColumnIndex.Zip].InnerText; imp.State = row.ChildNodes[WebColumnIndex.State].InnerText; if (imp.RoutingNumbers.IsNumberic()) { //log.Info($"Valid Row [{imp.RoutingNumbers}]"); entries.Add(imp); } else { //log.Error($"Invalid Row [{imp.RoutingNumbers}]"); } } } }
public static RoutingNumber RoutingNumber(Import_RoutingNumber_DTO dto) { RoutingNumber routingNumber = new RoutingNumber(); routingNumber.AbaNumber = dto.RoutingNumbers.RemoveSpecailCharacters().RemoveWhiteSpaceCharacters().Trim(); routingNumber.BankName = dto.BankName.ReplaceHtmlEscapeTags().Trim(); routingNumber.Address = dto.Address.ReplaceHtmlEscapeTags().Trim(); routingNumber.City = dto.City.ReplaceHtmlEscapeTags().Trim(); routingNumber.State = dto.State; string dateStr = dto.DateOfLastRevision.Insert(2, "/").Insert(5, "/"); routingNumber.DateOfLastRevision = Convert.ToDateTime(dateStr); routingNumber.Zip = dto.Zip.Substring(0, 5); routingNumber.BankPhone = dto.AchServicesTelephone.RemoveSpecailCharacters().RemoveWhiteSpaceCharacters().Trim(); return(routingNumber); }