推薦一款.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:如果所有爬蟲統一部署, 可以實現單臺機器同時運行多個任務撥號互不影響、或者一個路由下面多個電腦下多個任務撥號互不影響
  • 支持自定義代理池
  • 有管理平臺

本文分享自微信公衆號 - 一線碼農聊技術(dotnetfly)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章