-
1 # Java架構師CAT
-
2 # 我是數學天才
爬蟲目前主要開發語言為java、Python、c++對於一般的資訊採集需要,各種語言差別不大。c、c++搜尋引擎無一例外使用C\C++ 開發爬蟲,猜想搜尋引擎爬蟲採集的網站數量巨大,對頁面的解析要求不高,部分支援javascriptpython網路功能強大,模擬登陸、解析javascript,短處是網頁解析python寫起程式來真的很便捷,著名的python爬蟲有scrapy等javajava有很多解析器,對網頁的解析支援很好,缺點是網路部分java開源爬蟲非常多,著名的如 nutch 國內有webmagicjava優秀的解析器有htmlparser、jsoup對於一般性的需求無論java還是python都可以勝任。如需要模擬登陸、對抗防採集選擇python更方便些,如果需要處理複雜的網頁,解析網頁內容生成結構化資料或者對網頁內容精細的解析則可以選擇java。
-
3 # 淺戲人生
爬蟲,其實網路爬蟲(Web crawler)的一種簡寫,爬蟲就是預先制定的規則,自動地抓取全球資訊網網頁頁面資訊的程式或者指令碼,它們被廣泛用於網際網路搜尋引擎或其他類似網站,可以自動採集所有其能夠訪問到的頁面內容,以獲取或更新這些網站的內容和檢索方式。從功能上來講,爬蟲一般分為資料採集,處理,儲存三個部分。
在爬蟲技術開發方面,爬蟲分為三類爬蟲:
(1)分散式爬蟲:Nutch
(2)JAVA爬蟲:Crawler4j、WebMagic、WebCollector
(3)非JAVA爬蟲:scrapy(基於Python語言開發)
分散式爬蟲一般應用於大量資料爬取,用於爬取海量URL的場景。
java爬蟲是發展的最為完善的一種爬蟲。由於java語言的健壯性和整個生態的原因,java爬蟲發展出了一整臺爬蟲的機制,不管是類庫、開發、除錯,整個過程都是十分規範和簡單的。並且有很多開源專案可以參考和使用,社群非常活躍和完善。能夠適用於很多企業開發應用場景。
Python爬蟲,python可以用30行程式碼,完成JAVA 50行程式碼乾的任務。python寫程式碼的確快,但是在除錯程式碼的階段,python程式碼的除錯往往會耗費遠遠多於編碼階段省下的時間。使用python開發,要保證程式的正確性和穩定性,就需要寫更多的測試模組。當然如果爬取規模不大、爬取業務不復雜,使用python這種爬蟲也是蠻不錯的,可以輕鬆完成爬取任務。
所以,如果提問者需要學習爬蟲,可以先考慮下自己學爬蟲的目的是什麼比較好,根據你的目的去進行技術選型才是最省力的一種,不過一般作為個人開發者的話,Python還是最實用的。
-
4 # 破局三叉戟
做過數年爬蟲,Python和Java都用過(主要用Python),親身感受來回答問題。
做爬蟲是一個很有意思的事情,它不是算算數字也不是畫圖,更像是模擬人類來做重複性的瑣碎工作,同時要和反爬蟲鬥智鬥勇。
我們拋開語言,先看看什麼是做爬蟲開發要注意的或者更重要的:
選擇熟悉的語言據說最好的程式語言是你已經熟悉的——網路爬蟲也是這樣。在學習使用時,可能會加快速度——站在凳子上拿高處東西會容易些。
第三方庫可以使事情變得更容易並不需要從頭開始,因為有許多第三方庫專門用於網路爬蟲——憋重頭造輪子阿——站在巨人肩膀上更容易摸到月亮——也更容易掉下來。
以下是爬蟲的的理想程式語言需要的東西:靈活性提供資料庫的操作能力“爬”效率易於編寫可擴充套件性可維護性網路抓取的速度是否依賴於語言?許多初學者都在思考程式語言在速度方面的問題。但是處理速度一般不是這裡的瓶頸。實際上,影響速度的主要因素是I / O(輸入/輸出),因為網路爬蟲就是傳送請求和接收響應。與網際網路的溝通是這裡的真正瓶頸。網際網路的速度無法與您機器內處理器的速度相匹配。
這並不意味著語言無關緊要;語言的速度主要取決於開發速度,易維護性和程式碼可讀性
Node.js
Node.js特別 適合 抓取使用動態編碼的網站。 雖然它支援分散式爬,但通訊的穩定性相對較弱,不建議用於大型專案。
C&C++:
雖然C和C++提供了很好的效能,但開發太累了。 因此,建議不要使用C或C++。
PHP:
PHP可能是構建爬蟲程式最不利的語言。對多執行緒和非同步的弱支援是一個很大的缺點,這可能會在任務排程和排隊方面產生許多問題。
Python:
Python是最流行的Web抓取語言。它更像是一個多面手,可以順利處理大多數網路爬行相關流程。
Scrapy和Beautiful Soup是基於Python的廣泛使用的框架。
Beautiful soup是一個Python庫,專為快速高效的Web爬蟲而設計。
一些值得注意的功能是用於導航,搜尋和修改解析樹的Pythonic習語。 Beautiful Soup還可以將傳入的文件轉換為Unicode,將傳出的文件轉換為UTF-8。 Beautiful Soup適用於流行的Python解析器,如lxml和html5lib,它們允許您嘗試不同的解析方法。這些高度發展的Web庫使Python成為Web爬蟲的最佳語言。
回覆列表
python
網路功能強大,模擬登陸、解析javascript,短處是網頁解析python寫起程式來真的很便捷,著名的python爬蟲有scrapy等
java
java有很多解析器,對網頁的解析支援很好,缺點是網路部分java開源爬蟲非常多,著名的如 nutch 國內有webmagicjava優秀的解析器有htmlparser、jsoup對於一般性的需求無論java還是python都可以勝任。如需要模擬登陸、對抗防採集選擇python更方便些,如果需要處理複雜的網頁,解析網頁內容生成結構化資料或者對網頁內容精細的解析則可以選擇java。