在好例子网,分享、交流、成长!
您当前所在位置:首页Others 开发实例一般编程问题 → 高速灵活的跨平台C#网络爬虫框架abot介绍

高速灵活的跨平台C#网络爬虫框架abot介绍

一般编程问题

下载此实例

实例介绍

【实例简介】
abot是一个高速且灵活的跨平台C#网络爬虫框架,旨在为开发者提供一个简单易用的工具来抓取网站数据。该框架解决了多线程、HTTP请求、调度、链接解析等底层问题,允许开发者通过注册事件来处理页面数据。此外,开发者可以插入自己的核心接口实现,完全控制爬取过程。

Abot是sjdirect的一个实例,支持.NET Standard 2.0及以上版本,以及.NET 4.0版本,使其与多种.net框架/核心实现高度兼容。Abot特点包括:开源、高速、易于定制、高度单元测试、轻量级和无外部依赖。

使用AbotX可以获得更强大的扩展/包装器,包括并发抓取多个站点、执行/渲染JavaScript、避免被站点阻塞、自动调优、自动节流、暂停/恢复实时爬取以及简化的可插拔性/扩展性。

快速开始指南提供了安装Abot的方法,以及如何使用Abot进行简单的爬虫示例和单页面请求。此外,还介绍了Abot配置选项、事件注册和自定义对象使用方法,以及如何自定义爬取行为,包括自定义实现PoliteWebCrawler的依赖项以适应特定需求。
【实例截图】
【核心代码】
文件清单
└── abot-0363d0195d739ecff5360b07ecfdfe885f51a125
    ├── Abot2
    │   ├── Abot2.csproj
    │   ├── Abot2.nuspec.ignore
    │   ├── AssemblyDirectives.cs
    │   ├── Constants.cs
    │   ├── Core
    │   │   ├── AngleSharpHyperLinkParser.cs
    │   │   ├── BloomFilterCrawledUrlRepository.cs
    │   │   ├── CompactCrawledUrlRepository.cs
    │   │   ├── CrawlDecisionMaker.cs
    │   │   ├── DomainRateLimiter.cs
    │   │   ├── FifoPagesToCrawlRepository.cs
    │   │   ├── HyperLinkParser.cs
    │   │   ├── InMemoryCrawledUrlRepository.cs
    │   │   ├── PageRequester.cs
    │   │   ├── RobotsDotText.cs
    │   │   ├── RobotsDotTextFinder.cs
    │   │   ├── Scheduler.cs
    │   │   └── WebContentExtractor.cs
    │   ├── Crawler
    │   │   ├── CrawlArgs.cs
    │   │   ├── PageCrawlCompletedArgs.cs
    │   │   ├── PageCrawlDisallowedArgs.cs
    │   │   ├── PageCrawlStartingArgs.cs
    │   │   ├── PageLinksCrawlDisallowedArgs.cs
    │   │   ├── PoliteWebCrawler.cs
    │   │   ├── RobotsDotTextParseCompletedArgs.cs
    │   │   └── WebCrawler.cs
    │   ├── Poco
    │   │   ├── CrawlConfiguration.cs
    │   │   ├── CrawlContext.cs
    │   │   ├── CrawlDecision.cs
    │   │   ├── CrawledPage.cs
    │   │   ├── CrawlResult.cs
    │   │   ├── Enums.cs
    │   │   ├── HyperLink.cs
    │   │   ├── PageContent.cs
    │   │   └── PageToCrawl.cs
    │   └── Util
    │       ├── BloomFilter.cs
    │       ├── CachedMemoryMonitor.cs
    │       ├── GcMemoryMonitor.cs
    │       ├── LimitedConcurrencyTaskScheduler.cs
    │       ├── ManualThreadManager.cs
    │       ├── MemoryManager.cs
    │       ├── RateLimiter.cs
    │       ├── TaskThreadManager.cs
    │       └── ThreadManager.cs
    ├── Abot2.Demo
    │   ├── Abot2.Demo.csproj
    │   └── Program.cs
    ├── Abot2.Tests.Integration
    │   ├── Abot2.Tests.Integration.csproj
    │   ├── AssemblySetup.cs
    │   ├── CrawlTestBase.cs
    │   └── CrawlTest.cs
    ├── Abot2.Tests.Unit
    │   ├── Abot2.Tests.Unit.csproj
    │   ├── AssemblySetup.cs
    │   ├── Core
    │   │   ├── AngleSharpHyperLinkParserTest.cs
    │   │   ├── BloomFilterCrawledUrlRepositoryTest.cs
    │   │   ├── CompactCrawledUrlRepositoryTest.cs
    │   │   ├── CrawlDecisionMakerTest.cs
    │   │   ├── CrawledUrlRepositoryTest.cs
    │   │   ├── DomainRateLimiterTest.cs
    │   │   ├── FifoPagesToCrawlRepositoryTest.cs
    │   │   ├── HyperlinkParserTest.cs
    │   │   ├── InMemoryCrawledUrlRepositoryTest.cs
    │   │   ├── PageRequesterTest.cs
    │   │   ├── PagesToCrawlRepositoryTest.cs
    │   │   ├── RobotsDotTextFinderTest.cs
    │   │   ├── RobotsDotTextTest.cs
    │   │   ├── SchedulerTest.cs
    │   │   └── WebContentExtractorTest.cs
    │   ├── Crawler
    │   │   ├── CrawlArgsTest.cs
    │   │   ├── PageCrawlCompletedArgsTest.cs
    │   │   ├── PageCrawlDisallowedArgsTest.cs
    │   │   ├── PageCrawlStartingArgsTest.cs
    │   │   ├── PageLinksCrawlDisallowedArgsTest.cs
    │   │   ├── PoliteWebCrawlerTest.cs
    │   │   └── WebCrawlerTest.cs
    │   ├── FakeHttpContent.cs
    │   ├── HtmlAgilityPackStackOverflow1.html
    │   ├── HtmlAgilityPackStackOverflow2.html
    │   ├── Poco
    │   │   ├── CrawlConfigurationTest.cs
    │   │   ├── CrawlContextTest.cs
    │   │   ├── CrawlDecisionTest.cs
    │   │   ├── CrawledPageTest.cs
    │   │   ├── CrawlResultTest.cs
    │   │   ├── HyperLinkTest.cs
    │   │   ├── PageContentTest.cs
    │   │   └── PageToCrawlTest.cs
    │   └── Util
    │       ├── BloomFilterTest.cs
    │       ├── CachedMemoryMonitorTest.cs
    │       ├── GcMemoryMonitorTest.cs
    │       ├── ManualThreadManagerTest.cs
    │       ├── MemoryManagerTest.cs
    │       ├── RateLimiterTest.cs
    │       ├── TaskThreadManagerTest.cs
    │       └── ThreadManagerTest.cs
    ├── Abot.sln
    ├── azure-pipelines.yml
    ├── License.txt
    ├── msbuild.rsp
    ├── README.md
    └── TestResponses.saz

13 directories, 98 files

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警