網路爬蟲三大特性

web-crawler發表於2015-01-23

(1) 傳統爬蟲,像nutch、hetriex之類的,以爬取簡單頁面為好,即沒有複雜請求的頁面。但隨著web2.0的興起,越來越多的網站採用很多動態互動技術如ajax之類的來提升使用者體驗、需使用者登陸才可訪問的頁面等,它們就無能為力了,或者說需要二次開發的開發成本太高,很多人放棄用它們。

(2) 定製爬蟲,針對一些大資料平臺,如微博、電商、點評網之類的,頁面互動複雜、使用者登陸後方可訪問,往往是需要自定義定製開發一些爬蟲專案,如專門針對微博的微博爬蟲,針對大眾點評網的定製爬蟲,針對豆辯書評的評論爬蟲,都屬於典型的定製爬蟲,其難度要大於傳統爬蟲,需要相應的定製分析工具與能力,並且要具備很紮實的程式設計功底,優化效率,克服驗證碼、拒絕服務等反爬措施,方可做出高效的該類爬蟲。現在主流依然是基於httpclient+jsoup來搞定網路下載與頁面解析。

(3) 新型爬蟲,結合一些成熟的第三方工具,如c/c++實現的webkit、htmlunit、phantomjs、casper等工具,其共同點即最大限度的去模擬人為操作瀏覽器的方式去解決用(1)(2)所不易解決的問題,如模擬登陸、複雜引數的獲取、複雜頁面互動等問題。往往採用如上的工具可以輕鬆搞定這些問題,其最大的缺點是由於基於真實瀏覽器的操作,故效率比較低,所以往往需要和httpclient相結合,才能達到高效實用的目的。基於phantomjs做的百度元搜尋抓取也證明了這一點,下一步可以結合它去完成微博類爬蟲的模擬登陸獲取cookies部分,之後採用httpclient+jsoup解決海量資料的抓取,是非常好的微博爬蟲解決方案。

相關文章