python為什么叫爬蟲-可以寫爬蟲的那么多,為什么只有python火了?

 2023-11-18 阅读 24 评论 0

摘要:原標題:可以寫爬蟲的那么多,為什么只有python火了? 網絡爬蟲: 網絡爬蟲(又被稱為網頁蜘蛛,網絡機器人,在FOAF社區中間,更經常的稱為網頁追逐者),是一種按照一定的規則,自動地抓取萬維網信息的程

原標題:可以寫爬蟲的那么多,為什么只有python火了?

網絡爬蟲:

網絡爬蟲(又被稱為網頁蜘蛛,網絡機器人,在FOAF社區中間,更經常的稱為網頁追逐者),是一種按照一定的規則,自動地抓取萬維網信息的程序或者腳本。另外一些不常使用的名字還有螞蟻、自動索引、模擬程序或者蠕蟲。

c52274f859f94902aa03943355e5df4e.jpeg

通俗的講,爬蟲就是能夠自動訪問互聯網并將網站內容下載下來的的程序或腳本,類似一個機器人,能把別人網站的信息弄到自己的電腦上,再做一些過濾,篩選,歸納,整理,排序等等。

可以做爬蟲的語言:PHP,JAVA,C#,C++,Python,但是為什么這么多可以寫爬蟲的只有python火了呢?請看看他們怎么說.

姜康:

我用 PHP 和 Python 都寫過爬蟲和正文提取程序。

最開始使用 PHP 所以先說說 PHP 的優點:

1.語言比較簡單,PHP 是非常隨意的一種語言。寫起來容易讓你把精力放在你要做的事情上,而不是各種語法規則等等。

2.各種功能模塊齊全,這里分兩部分:

1.網頁下載:curl 等擴展庫;

2.文檔解析:dom、xpath、tidy、各種轉碼工具,可能跟題主的問題不太一樣,我的爬蟲需要提取正文,所以需要很復雜的文本處理,所以各種方便的文本處理工具是我的大愛。;

總之容易上手。

7a0f72e6b9c8432f984fdbfc5beec6a8.jpeg

缺點:

1.并發處理能力較弱:由于當時 PHP 沒有線程、進程功能,要想實現并發需要借用多路服用模型,PHP 使用的是 select 模型。實現其來比較麻煩,可能是因為水平問題我的程序經常出現一些錯誤,導致漏抓。

再說說 Python:

優點:

1.各種爬蟲框架,方便高效的下載網頁;

2.多線程、進程模型成熟穩定,爬蟲是一個典型的多任務處理場景,請求頁面時會有較長的延遲,總體來說更多的是等待。多線程或進程會更優化程序效率,提升整個系統下載和分析能力。

3.GAE 的支持,當初寫爬蟲的時候剛剛有 GAE,而且只支持 Python ,利用 GAE 創建的爬蟲幾乎免費,最多的時候我有近千個應用實例在工作。

缺點:

1.對不規范 HTML 適應能力差:舉個例子,如果一個頁面里面同時有 GB18030 字符集的中文和 UTF-8 字符集的中文,Python 處理起來就沒有 PHP 那么簡單,你自己需要做很多的判斷工作。當然這是提取正文時的麻煩。

Java 和 C++ 當時也考察過,相對腳本語言比較麻煩,所以放棄。

3c532871f3fa42538954f6a56cd7affb.gif

總之,如果開發一個小規模的爬蟲腳本語言是個各方面比較有優勢的語言。如果要開發一個復雜的爬蟲系統可能 Java 是個增加選項, C++ 我感覺寫個模塊之類的更加適合。對于一個爬蟲系統來說,下載和內文解析只是基本的兩個功能。真正好的系統還包括完善的任務調度、監控、存儲、頁面數據保存和更新邏輯、排重等等。爬蟲是一個耗費帶寬的應用,好的設計會節約大量的帶寬和服務器資源,并且好壞差距很大。

儒小逸:

我用c#,java都寫過爬蟲。區別不大,原理就是利用好正則表達式。只不過是平臺問題。后來了解到很多爬蟲都是用python寫的。因為目前對python并不熟,所以也不知道這是為什么。百度了下結果:

1)抓取網頁本身的接口

相比與其他靜態編程語言,如java,c#,C++,python抓取網頁文檔的接口更簡潔;相比其他動態腳本語言,如perl,shell,python的urllib2包提供了較為完整的訪問網頁文檔的API。(當然ruby也是很好的選擇)

此外,抓取網頁有時候需要模擬瀏覽器的行為,很多網站對于生硬的爬蟲抓取都是封殺的。這是我們需要模擬user agent的行為構造合適的請求,譬如模擬用戶登陸、模擬session/cookie的存儲和設置。在python里都有非常優秀的第三方包幫你搞定,如Requests,mechanize

fff5cf048b1349228636a5f98c37c150.jpeg

2)網頁抓取后的處理

抓取的網頁通常需要處理,比如過濾html標簽,提取文本等。python的beautifulsoap提供了簡潔的文檔處理功能,能用極短的代碼完成大部分文檔的處理。

其實以上功能很多語言和工具都能做,但是用python能夠干得最快,最干凈。Life is short, u need python.

沖最后一句"Life is short, u need python’,立馬在當當上買了本python的書!以前就膜拜過python大牛,一直想學都扯于各種借口遲遲沒有開始。。

py用在linux上很強大,語言挺簡單的。

cbd02e1cfede42ac97dc03dd02fef9d6.png

NO.1 快速開發(唯一能和python比開發效率的語言只有rudy)語言簡潔,沒那么多技巧,所以讀起來很清楚容易。

NO.2跨平臺(由于python的開源,他比java更能體現"一次編寫到處運行"

NO.3解釋性( 無須編譯,直接運行/調試代碼)

NO.4構架選擇太多(GUI構架方面 主要的就有 wxPython, tkInter, PyGtk, PyQt 。返回搜狐,查看更多

責任編輯:

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/3/176792.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息