.net 爬蟲框架技術選型


個人認為爬蟲框架分抓取框架和分析框架

1)抓取框架

.net 市面上好的似乎不多,選擇要素分兩種:1.輕量型,2.重量型。

1. 輕量型是可以定制一些特殊的功能或者插件開關形式。總體性能高,速度快。

   自己寫的webclient,httprequest,httpclient等。或者直接socket編寫!

2. 重量型是可以基本模式瀏覽器,更加傻瓜化,也基本屏蔽了一些反爬蟲機制。

   如webbrower或者其他的webkit瀏覽器內核封裝的.net框架。

   如:https://github.com/cefsharp/CefSharp (.NET (WPF and Windows Forms) bindings for the Chromium Embedded Framework


抓取的特殊功能包括:cookie支持(默認),301自動跳轉,https默認支持,gzip等壓縮默認支持,自動多種方式識別編碼,默認模擬瀏覽器header,模擬css和js執行等等。

當然越是功能強大,性能越差些,但是適應各種情況的能力越強(反爬蟲能力),輕量型和重量型適應的抓取場景也都不一樣。

如:攜程的高級手法


技術選擇:

HttpHelper(作者是收費的,看了源碼,其實功能也不強大;自己也能做,只是原來寫的http框架源碼沒了,急着用暫時用下)

scrapysharp 中的ScrapingBrowser

.net HttpWebRequest 簡單封裝下

.net webclient 簡單封裝下


2)分析框架

舊技術:正則表達式

新方式: scrapysharp,HtmlAgilityPack,CsQuery 等等(還有很多)

scrapysharp:擴展自HtmlAgilityPack,非常好用。(支持css選擇器方式,快速上手)

css的選擇器語法:http://www.w3school.com.cn/cssref/css_selectors.asp

  參考資料: http://www.cnblogs.com/arxive/p/7075306.html

示例

 

HtmlAgilityPack:本來就好用,但是用的時候還是要進行部分算法處理。(支持xpath方式獲取,快速上手)

百度一下,資料不少。

示例

 

CsQuery:似乎對中文 的支持有bug,獲取html的時候,中文會亂碼,不知道為什么。(支持jq(jquery)方式獲取,快速上手)

https://github.com/jamietre/CsQuery

示例

 

Csoup

.net 版本的jsoup。當然csoup的相關文檔少,建議直接看jsoup的文檔(也一樣的)。(支持jq(jquery)的方式獲取,快速上手)

地址: http://nsoup.codeplex.com/

文檔:http://www.open-open.com/jsoup/

 

歡迎交流,一起了解爬蟲技術更多知識,完善技術棧,.net 開源因你更美好。開源QQ群: .net 開源基礎服務  238543768

by 車江毅


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM