1. 程式人生 > >爬蟲 第三篇 (語言選擇python還是java還是其他)

爬蟲 第三篇 (語言選擇python還是java還是其他)

爬蟲目前主要開發語言為java、python、c++
有些公司也用go語言(杭州某網際網路金融公司)

對於一般的資訊採集需要,各種語言差別不大。

  1. c、c++
    搜尋引擎無一例外使用C\C++ 開發爬蟲,猜想搜尋引擎爬蟲採集的網站數量巨大,對頁面的解析要求不高,部分支援javascript

  2. python
    網路功能強大,模擬登陸、解析javascript,短處是網頁解析
    python寫起程式來真的很便捷,著名的python爬蟲有scrapy等

  3. java
    java有很多解析器,對網頁的解析支援很好,缺點是網路部分
    java開源爬蟲非常多,著名的如 nutch 國內有webmagic
    java優秀的解析器有htmlparser、jsoup

對於一般性的需求無論java還是python都可以勝任。

如需要模擬登陸、對抗防採集選擇python更方便些,如果需要處理複雜的網頁,解析網頁內容生成結構化資料或者對網頁內容精細的解析則可以選擇java。

2018年更新

—————————————————–

python流行起來,從某程式設計師聚集的網站來看 python爬蟲教程滿天飛。著名的scrapy便是python開發的。
python開發爬蟲非常靈活,最適合一次性採集資料,寫幾行程式碼就可以把初步結構化的資料庫入庫。urllib、requests、beautifulsoup等模組可以輕鬆構建一個基本的採集程式。
使用python時會遇到中文亂碼問題,window開發 Linux 部署亂碼問題會讓你感覺更棘手,最好統一開發部署環境,有錢公司用macbookpro,沒錢裝個ubuntu。

python遇到複雜的js是表現和java差不多,你都會想自己實現一個瀏覽器,phantomjs 不夠穩定,中介再加上一層selenium 寫寫demo還可以

也有人用node.js 開發爬蟲,自帶V8 引擎,乍一看可以推平所有帶js 的頁面,node本身是為了js 實現後臺來設計的,對於資訊採集,node和python 和java 沒有本質區別,js 引擎和瀏覽器引擎並不是一個東西,倒是有牛人用開源瀏覽器實現了一套瀏覽器採集程式,不過這牛人有時間折騰,一般公司招不到這種人,也沒時間給你折騰,即便你折騰出來了,後續也沒人接。

chrome的無頭瀏覽器出來了,遇到複雜的js 頁面可以少折騰。

最終使用哪種語言開發企業級採集應用,需要考慮多種因素。

主流的還是java和python,

java 比python繁瑣,python比java招人難。

node適合做過前端的高手。

爬蟲交流群:177655321