迎接来到,工具箱!于此处,你能够发觉各类使人惊喜的开源项目!

Abot

在.NET技术栈里头,要是你寻觅一个具备高性能、有着可扩展性、且不存在过度设计情形的网页爬虫框架c#做网站优缺点,那么Abot便是一个没法避开的选择,它是一个被开发出来的C# Web 框架,其核心目标仅仅存在两个方面:速度够快,并且具备足够的灵活性。

Abot 将那又繁复又琐碎的底层工作全都承揽下来,像多线程调度,HTTP 请求,链接解析,抓取策略控制这类,而开发者只需借助事件或者接口,专心于“页面被抓下来之后自己想要做什么”。

c#做网站优缺点

核心特点一览:为什么选择 Abot? 快,而且是真的快

Abot 是专为并发以及高吞吐而设计打造的,它里面内置了线程管理,还配备有调度器,能够在确保“礼貌爬取”得以实现的条件之下,将抓取效率提升到最大限度。

高度可定制的可插拔架构

从是不是抓取页面,是不是下载内容,是不是继续爬链接,再到线程管理,其调度器,HTTP 请求器,链接解析器c#做网站优缺点,差不多所有关键行为都能够替换。

你可以:

单元测试覆盖率高

Abot,它可不是那种所谓的“玩具型爬虫”,它是身为一个经过了海量单元测试去验证的工程化框架,它是适合那种能够进行长期维护的项目去使用的。

轻量、纯净、无外部依赖

立刻拿来就能使用,极其吻合去当作数据采集的工具,搜索引擎的原型,站点分析的系统。

c#做网站优缺点

版本与兼容性说明 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 };
};

如果规则复杂?直接实现 接口即可。