伊谢尔伦2017-04-17 17:50:02
其實我不太同意做了DHT爬蟲那位的說法。
不同語言自然會有不同用處。離開環境談哪個好,哪個不好都是耍流氓。
1,如果是自己做著玩的話,定向爬幾個頁面,效率不是核心要求的話,問題不會大,什麼語言都行的,性能差異不會大。當然,如果碰到十分複雜的頁面,正規寫的很複雜的話,爬蟲的可維護性就會下降。
2,如果是做定向爬取,而目標又要解析動態js。
那這個時候,用普通的請求頁面,然後得到內容的方法肯定不行了,就要一個類似firfox,chrome的js引擎來對js程式碼做動態解析。這時候推薦casperJS+phantomjs或slimerJS+phantomjs
3,如果是大規模的網站爬取
這時候就要考慮到,效率,擴展性,可維護性,等等了。
大規模的爬取涉及的方面很多,例如分散式爬取,判重機制,任務調度。這些問題深入下去哪一個簡單了?
語言選取這個時候很重要。
NodeJs:做爬蟲效率很高。高並發,多執行緒程式設計變成了簡單的遍歷和callback,記憶體cpu佔用小,要處理好callback。
PHP:各種車架到處有,隨便拉個來用都行。但是,PHP的效率真的有問題…不多說
Python:我用python寫的比較多,對各種問題都有比較好的支持。 scrapy框架很好用,優點多。
我覺得js也不是很適合寫…效率問題。沒寫過,估計會有麻煩一堆。
據我知道的,大公司也有用c++的,總之大多數都是在開源框架上改造。真重新造個輪子的不多吧。
不值。
隨手憑印象寫的,歡迎指正。
黄舟2017-04-17 17:50:02
nodejs +1
不,我錯了。
高效能爬蟲並不像伺服器那樣適合併發,而為了效率(減少重複)更適合併行而非並發。
好吧我又錯了。
並行對爬蟲幾乎一樣~
不,不一樣。
算了,nodejs +1。
大家讲道理2017-04-17 17:50:02
用python居多,當然java c++也不少。 python來的快,相對於中小規模很有優勢,如果大規模就需要優化或c來重寫部分效能瓶頸的程式碼。