Abot C#multithreaded

时间:2017-04-20 13:40:29

标签: c# web-crawler abot

是否可以调用Abot Crawler多线程?看了一个代码示例但没有找到答案。 当我创建1个Abot Crawler实例并在foreach语句中调用Crawl方法时,只有1个已完成事件。

foreach(var pero in list)
{
      crawler.Crawl(pero.Url);
}

这不起作用.Crawler_PageCrawlCompletedAsync只调用一次。

1 个答案:

答案 0 :(得分:0)

不需要foreach循环。 Abot在后台执行多线程。您为它提供了一个要爬网的URL,它将在每个单个爬网程序对象实例中生成多达x个并发http请求。可以使用Abot2.Poco.CrawlConfiguration.MaxConcurrentThreads设置进行设置。

var config = new CrawlConfiguration
{
    MaxConcurrentThreads = 10
    MaxPagesToCrawl = 50, 
};
var crawler = new PoliteWebCrawler(config);

crawler.PageCrawlCompleted += PageCrawlCompleted;//Several events available...

var crawlResult = await crawler.CrawlAsync(new Uri("http://!!!!!!!!YOURSITEHERE!!!!!!!!!.com"));

请小心。它可以请求和处理页面的速度比大多数网站可以/将为它们服务的速度快得多。非常容易让您的IP被禁止/阻止。