public async Task <IEnumerable <string> > GetLinksFromContent(CrawlingTask task) { await GetRandomDelay(); if (_contentEmulation.ContainsKey(task.UrlToCrawl)) { return(_contentEmulation[task.UrlToCrawl]); } return(null); }
public async Task Crawl(ConcurrentBag <CrawlingTask> bag, string crawlerName) { CrawlingTask task; while (bag.TryTake(out task)) { IEnumerable <string> urls = await GetLinksFromContent(task); if (urls != null) { foreach (var url in urls) { var t = new CrawlingTask { UrlToCrawl = url, ProucerName = crawlerName }; bag.Add(t); } } } }