首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于C#多线程

关于C#多线程
EN

Stack Overflow用户
提问于 2017-04-20 21:40:29
回答 1查看 556关注 0票数 1

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

代码语言:javascript
复制
foreach(var pero in list)
{
      crawler.Crawl(pero.Url);
}

This does not work.Crawler_PageCrawlCompletedAsync只调用一次。

EN

回答 1

Stack Overflow用户

发布于 2019-12-12 06:27:15

不需要foreach循环。Abot在后台执行多线程。您给它一个url进行爬行,它将在每个爬虫对象实例中产生最多x个并发http请求。这可以通过使用Abot2.Poco.CrawlConfiguration.MaxConcurrentThreads设置来设置。

代码语言:javascript
复制
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禁止/阻止。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43521254

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档