public static CSVHandler MakeHandler(String path) { using (StreamReader reader = new StreamReader(path)) { string header = reader.ReadLine(); CSVHandler output = new CSVHandler(); output.path = path; output.stateNames = new List <String>(header.Split(DELIMITER)); output.stateNames.Remove("Date"); return(output); } }
private static async Task MainLoop() { while (true) { Task <string> scrapeTask = ScrapeAsync(); if (!File.Exists(FILE_PATH)) { CSVHandler.Create(FILE_PATH); } string scrapedPage = await scrapeTask; HtmlNodeCollection search = FindUsaData(scrapedPage); if (search.Count != 1) { throw new FormatException("Found " + search.Count + "tables??!"); } else { HtmlNode tableBody = search[0].SelectSingleNode("tbody"); List <TableRow> processedHTML = new List <TableRow>(); foreach (HtmlNode row in tableBody.ChildNodes) { if (row.Name.Equals("tr")) { TableRow processed = TableRow.Parse_tr_Element(row); processedHTML.Add(processed); } } CSVHandler handler = CSVHandler.MakeHandler(FILE_PATH); DateTime now = DateTime.Now; handler.Write(processedHTML, now); Console.WriteLine($"Finished a scraping at {now}"); await Task.Delay(FOUR_HOURS); } } }