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...