我的認爲爬蟲框架分抓取框架和分析框架css
1)抓取框架html
.net 市面上好的彷佛很少,選擇要素分兩種:1.輕量型,2.重量型。jquery
1. 輕量型是能夠定製一些特殊的功能或者插件開關形式。整體性能高,速度快。git
本身寫的webclient,httprequest,httpclient等。或者直接socket編寫!github
2. 重量型是能夠基本模式瀏覽器,更加傻瓜化,也基本屏蔽了一些反爬蟲機制。web
如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執行等等。 c#
固然越是功能強大,性能越差些,可是適應各類狀況的能力越強(反爬蟲能力),輕量型和重量型適應的抓取場景也都不同。 api
如:攜程的高級手法
技術選擇:
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 車江毅