迎接来到,工具箱!于此处,你能够发觉各类使人惊喜的开源项目!
Abot
在.NET技术栈里头,要是你寻觅一个具备高性能、有着可扩展性、且不存在过度设计情形的网页爬虫框架c#做网站优缺点,那么Abot便是一个没法避开的选择,它是一个被开发出来的C# Web 框架,其核心目标仅仅存在两个方面:速度够快,并且具备足够的灵活性。
Abot 将那又繁复又琐碎的底层工作全都承揽下来,像多线程调度,HTTP 请求,链接解析,抓取策略控制这类,而开发者只需借助事件或者接口,专心于“页面被抓下来之后自己想要做什么”。

核心特点一览:为什么选择 Abot? 快,而且是真的快
Abot 是专为并发以及高吞吐而设计打造的,它里面内置了线程管理,还配备有调度器,能够在确保“礼貌爬取”得以实现的条件之下,将抓取效率提升到最大限度。
高度可定制的可插拔架构
从是不是抓取页面,是不是下载内容,是不是继续爬链接,再到线程管理,其调度器,HTTP 请求器,链接解析器c#做网站优缺点,差不多所有关键行为都能够替换。
你可以:
单元测试覆盖率高
Abot,它可不是那种所谓的“玩具型爬虫”,它是身为一个经过了海量单元测试去验证的工程化框架,它是适合那种能够进行长期维护的项目去使用的。
轻量、纯净、无外部依赖
立刻拿来就能使用,极其吻合去当作数据采集的工具,搜索引擎的原型,站点分析的系统。

版本与兼容性说明 Abot
这让 Abot 在老项目和新项目中都具备很强的适配能力。
飞速上手:运行起一个爬虫仅需几分钟,其一,借助 NuGet 进行安装。
Install-Package Abot
一个最简单的爬虫示例
var config = new CrawlConfiguration
{
MaxPagesToCrawl = 10,
MinCrawlDelayPerDomainMilliSeconds = 3000
};
var crawler = new PoliteWebCrawler(config);
crawler.PageCrawlCompleted += (s, e) =>
{
Console.WriteLine(e.CrawledPage.Uri);
};
await crawler.CrawlAsync(new Uri("https://example.com"));
不必进行繁杂配置,便可达成一个遵循规则、具备支持并发功效、能够监听事件特点的爬虫。
深度可定制的爬虫行为
爬取决策()
你可以通过委托快速决定:
这个页面要不要爬?
页面内容要不要下载?
页面里的链接还要不要继续爬?
crawler.ShouldCrawlPageDecisionMaker = (page, context) =>
{
if (page.Uri.Authority.Contains("google.com"))
return new CrawlDecision { Allow = false };
return new CrawlDecision { Allow = true };
};
如果规则复杂?直接实现 接口即可。

