发现一款.NET Core开源爬虫神器:DotnetSpider
没有爬虫就没有互联网!
爬虫的意义在于采集大批量数据,然后基于此进行加工/分析,做更有意义的事情。谷歌,百度,今日头条,天眼查都离不开爬虫。
去开源中国和Github查询C#的爬虫项目,仅有几个非常简单或是几年没有更新的项目。
而单纯性能上.NET对比JAVA,PYTHON并没有处于弱势,反而有开发上的优势(得益于世界上最强大的IDE)。爬虫性能瓶颈大多是在并发下载(网速)、IP池,那么为什么.NET没有一个强大的爬虫框架呢?
说真的我不知道,可能爬虫框架核心上比较简单,也可能.NET的开发人员没有别的语言的开发人员勤奋,或是.NET的开源氛围没有别的语言高。
所以,今天推荐一个.NET 爬虫的开源项目:DotnetSpider
开源项目地址:
https://github.com/dotnetcore/DotnetSpider
免责申明:本框架如同 Python 下著名的 Scrapy 一样只是为了帮助开发人员简化开发流程、提高开发效率,请勿使用此框架做任何违法国家法律的事情。使用者所做任何事情也与本框架的作者无关。
设计图
框架设计
参考的webmagic,所以整体架构上没有什么大的变化,设计图如下(图片是直接从webmagic上拿的)
Scheduler:负责URL的调度、去重,可以实现如Queue, PriorityQueueScheduler, RedisScheduler(可用于分布式)等等 Downloader: 负责下载HTML,可以实现如HttpDownloader, 浏览器的Downloader(WebDriver), FiddlerDownloader,本地文件Downloader等等 PageProcesser: 负责HTML解析、目标URL的选择 Pipeline: 负责数据的存储, 已实现文件存储, MySql存储, MySqlFile存储(脚本),MSSQL存储,MongoDb存储, 更多存储期待您的贡献
优点
可以使用Json定义爬虫 可以使用实体类+Attrbiute定义爬虫 自动创建数据库、数据表 支持 .NET CORE,可以跨平台 支持ADSL拨号换IP:如果所有爬虫统一部署, 可以实现单台机器同时运行多个任务拨号互不影响、或者一个路由下面多个电脑下多个任务拨号互不影响 支持自定义代理池 有管理平台
如果你也有好的开源项目,欢迎推荐!
微信号联系:westbrook12000(ps:加好友请备注“开源”)
还需要Pandownload?阿里云网盘来了(附注册教程)
副业刚需,个人开发者如何通过小程序变现?已经有朋友变现月入4k了!
评论