static void Main(string[] args) { logger.Info("Logger started"); var pageUrl = "https://en.wikipedia.org/wiki/Gallery_of_sovereign_state_flags"; var httpDownload = new HttpRequestAndLoad(); string httpText = httpDownload.Load(pageUrl); var httpParser = new HtmlParser(); var element = httpParser.Parse(httpText).DocumentElement; var flagsHref = element.SelectNodes(@"//*[@id='mw-content-text']/div/table//table//tr[1]/td[1]/a/img"); // Async Timer using (var timer = new LogWrapTimer()) { var downloadQueue = new DownloadFileQueue() { Extension = ".jpg", AsyncMode = false }; downloadQueue.Setup("Flags"); foreach (IElement flagHref in flagsHref) { var urlRelative = flagHref.GetAttribute("src"); var urlAbsolute = new Uri(new Uri(pageUrl), urlRelative); downloadQueue.AddTask(urlAbsolute.AbsoluteUri); } downloadQueue.Wait(); } }
public void Setup(string local) { indexFile = new IndexFile(local); downloadHtml = new DownloadFileQueue() { Extension = ".html" }; downloadHtml.Setup("WebPages"); downloadImges = new DownloadFileQueue() { Extension = ".jpg" }; downloadImges.Setup("images"); if (AsyncMode) { service = new ConcurrentQueueService(); consumer = Task.Factory.StartNew(service.Dequeue); } }