开源高性能.NET爬虫框架Abot用法示例
2024-06-26
38
Abot简介
Abot 是一个开源的 C# 网络爬虫框架,它的特点是速度快和灵活。 它负责低级管道(多线程、http 请求、调度、链接解析等)。开发者只需要注册事件即可处理页面数据。
功能特性
免费开源 轻量级,速度快 支持定制 无依赖Abot用法示例
使用 Nuget 安装 Abot
PM> Install-Package Abot
下面是一些Abot代码示例
private static async Task DemoSimpleCrawler()
{
var config = new CrawlConfiguration
{
// 爬取 10 页
MaxPagesToCrawl = 10,
// 延迟 3 秒
MinCrawlDelayPerDomainMilliSeconds = 3000
};
var crawler = new PoliteWebCrawler(config);
// 监听记录日志
crawler.PageCrawlCompleted += PageCrawlCompleted;//
var crawlResult = await crawler.CrawlAsync(new Uri("https://google.com"));
}
private static async Task DemoSinglePageRequest()
{
var pageRequester = new PageRequester(new CrawlConfiguration(), new WebContentExtractor());
var crawledPage = await pageRequester.MakeRequestAsync(new Uri("http://google.com"));
Log.Logger.Information("{result}", new
{
url = crawledPage.Uri,
status = Convert.ToInt32(crawledPage.HttpResponseMessage.StatusCode)
});
}
全局配置
Abot 的 Abot2.Poco.CrawlConfiguration 类有大量的配置选项, 你可以根据自己的需要进行配置。
var crawlConfig = new CrawlConfiguration();
crawlConfig.CrawlTimeoutSeconds = 100;
crawlConfig.MaxConcurrentThreads = 10;
crawlConfig.MaxPagesToCrawl = 1000;
crawlConfig.UserAgentString = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36";
crawlConfig.ConfigurationExtensions.Add("SomeCustomConfigValue1", "1111");
crawlConfig.ConfigurationExtensions.Add("SomeCustomConfigValue2", "2222");
etc...
注册事件
你可以注册 Abot的执行事件,来查看爬虫执行的每一个步骤。
crawler.PageCrawlStarting += crawler_ProcessPageCrawlStarting;
crawler.PageCrawlCompleted += crawler_ProcessPageCrawlCompleted;
crawler.PageCrawlDisallowed += crawler_PageCrawlDisallowed;
crawler.PageLinksCrawlDisallowed += crawler_PageLinksCrawlDisallowed;
Abot GitHub地址
https://github.com/sjdirect/abot
更新于:2个月前赞一波!
相关文章
- 面向设计师、开发者的开源免费图标库
- .net面试常见算法题
- 免费开源的开发工具DevToys
- .NET初级程序员面试题和答案
- .NET架构师可以考哪些证书?
- 免费开源的远程桌面软件RustDesk官网下载
- 开源中文LLaMA2模型 Chinese-Llama-2-7b
- 开源去马赛克工具Depix用法
- 2023年.NET常见面试题和答案
- 开源远程支持软件RustDesk官网下载
- 基于Vue的免费开源admin管理后台框架
- 企业项目选择.NET6还是.NET8?
- 本机AOT与ASP.NET Core配合使用的优势
- .Net8 AOT有什么新特性
- 什么是.NET全家桶?
- .NET性能分析工具MiniProfiler使用示例
- .NET中运行Java代码
- .NET Core判断发起请求的设备
- .NET8 IExceptionHandler用法
- 使用IKVM.NET在.NET中运行Java代码
文章评论
全部评论