.net 爬蟲框架技術選型

我的認爲爬蟲框架分抓取框架和分析框架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 車江毅

相關文章
相關標籤/搜索