C 都有哪些爬蟲框架

時間 2021-05-12 07:52:11

1樓:譚九鼎

Html Agility Pack和AngleSharp基本上可以認為只能爬靜態的網頁,後者明確說可以解析基本的JS但不能解析Angular。前者文件簡單易讀,有少量方法沒有文件,後者文件豐富。前者只有兩百多次commit,後者六千多。

contributors和star數也是後者多,而且後者由.net foundation支援。從各個方面來看後者都比前者好。

然而現在GitHub的used by可以看到前者快兩萬了,後者不到三千現在後者沒有公開這個資料了,我也不知道為什麼。其實這兩者的本職工作都只是解析HTML,如果你不明白這句話是什麼意思,看下面分割線以下的部分。

然後補充乙個我看到的:dotnetcore/DotnetSpider ,這個專案是中國產的,也支援Core,支援分布式。但這個正在重寫,且文件不太好(幾乎沒有)。

對於動態網頁且如果你不知道怎麼找介面:

如果用的是.NET Framework,可以用System.Windows.

Forms.WebBrowser.Document獲取HtmlDocument,根據需求用All或者Body的HtmlElement的OuterHtml或根據需求傳給這兩個框架。

但這個控制項預設的核心是老的IE核心,對現代前端的標準支援不好。

如果是.NET Core,單機可以用Selenium+PhantomJS。不過後者現在不維護了,且新版本的Selenium也不再支援PhantomJS,可以考慮換成其它的HeadLess瀏覽器,比如CEF或者其它WebDriver。

因為本提問問的是框架,我上面就回答的是框架。而對於爬蟲的初學者,我在這裡寫一點對爬蟲的基本認知:

你需要對前端和網路基礎知識有一些了解。其實本質上爬蟲就是向伺服器請求資料。

如果是服務端渲染,把HTML下下來,用解析HTML的框架提取出需要的資訊就好;如果是客戶端渲染,在瀏覽器的f12裡選網路選XHR就能找到AJAX請求,自己手動傳送就好。這就是requests和bs4做的事。

爬蟲真正困難的地方是多執行緒/分布式,是與反爬的鬥爭,是資料儲存和清洗。這些和網路請求關係都不大。這就是爬蟲框架出力的地方,例如scrapy。

如果你已經有了對前端和網路的基礎知識,你會發現requests和bs4根本不用學就已經都知道了。

2樓:

anglesharp.github.io/NSoup:推薦

GeReV/NSoup

Arachnode:暫無說明Home - arachnode.net

NCrawler:暫無說明

CodePlex Archive

HttpHelper:中國人的,貌似是個小團隊,專門寫寫幫助類框架,有開源的,也有功能更加強大的收費版。

HttpHelper萬能框架 - 網路爬蟲框架原始碼 - 蘇飛論壇CSQuery:不錯

CsQuery 1.3.4

乙個爬蟲框架需要具備哪些功能

gao xinge 首先web框架需要具備哪些功能。Flask,Django有模板類,Request類,Response類等,但其實最核心的是他們的路由 route 功能 即url到檢視函式的對映規則。其次爬蟲框架需要具備哪些功能。Scrapy,pyspider有http請求庫,html解析工具,資...

如何入門C 爬蟲?

八爪魚採集器 說實話吧,如果你看過整個.NET的庫,你就知道,你用C 做爬蟲是不合適的 為什麼這麼說,C 天生就是乙個犧牲效率的語言,不管微軟把完成埠給封裝得多好,不管把正規表示式的庫搞得多牛B,不管把String弄得多溜,他就是一種犧牲效率的語言。做爬蟲,要麼資料量大,要麼要求實時性高,在效率面前...

用Python寫爬蟲,用什麼方式 框架比較好?

如果是新手入門建議先不用框架,自己擼 等熟悉以後可以上 Scrapy 框架並且可以研究下原始碼。當然如果需要採集資料,可以先在 GitHub 上搜尋下,一般的需求在 GitHub 往往已經有很多類似的專案可以滿足。這裡推薦下 AkShare,基於 Python 的開源財經資料介面庫 hunt zha...