是否可以调用Abot Crawler多线程?看了一个代码示例但没有找到答案。 当我创建1个Abot Crawler实例并在foreach语句中调用Crawl方法时,只有1个已完成事件。
foreach(var pero in list)
{
crawler.Crawl(pero.Url);
}
这不起作用.Crawler_PageCrawlCompletedAsync只调用一次。
答案 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被禁止/阻止。