1. 程式人生 > 程式設計 >python和php哪個更適合寫爬蟲

python和php哪個更適合寫爬蟲

python和PHP相比較,python適合做爬蟲。原因如下

抓取網頁本身的介面

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

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

網頁抓取後的處理

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

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

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

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

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

NO.3解釋性( 無須編譯,直接執行/除錯程式碼)

NO.4構架選擇太多(GUI構架方面 主要的就有 wxPython,tkInter,PyGtk,PyQt 。

PHP 指令碼主要用於以下三個領域:

服務端指令碼。這是 PHP 最傳統,也是最主要的目標領域。開展這項工作需要具備以下三點:PHP 解析器(CGI 或者伺服器模組)、web

伺服器和 web 瀏覽器。需要在執行 web 伺服器時,安裝並配置 PHP,然後,可以用 web 瀏覽器來訪問 PHP 程式的輸出,即瀏覽服務

端的 PHP 頁面。如果只是實驗 PHP 程式設計,所有的這些都可以執行在自己家裡的電腦中。請查閱安裝一章以獲取更多資訊。命令列指令碼。

可以編寫一段 PHP 指令碼,並且不需要任何伺服器或者瀏覽器來執行它。通過這種方式,僅僅只需要 PHP 解析器來執行。這種用法對於依

賴 cron(Unix 或者 Linux 環境)或者 Task Scheduler(Windows 環境)的日常執行的指令碼來說是理想的選擇。這些指令碼也可以用來處

理簡單的文字。請參閱 PHP 的命令列模式以獲取更多資訊。編寫桌面應用程式。對於有著圖形介面的桌面應用程式來說,PHP 或許不是

一種最好的語言,但是如果使用者非常精通 PHP,並且希望在客戶端應用程式中使用 PHP 的一些高階特性,可以利用 PHP-GTK 來編寫這

些程式。用這種方法,還可以編寫跨平臺的應用程式。PHP-GTK 是 PHP 的一個擴充套件,在通常釋出的 PHP 包中並不包含它。

網友觀點擴充套件:

我用 PHP Node.js Python 寫過抓取指令碼,簡單談一下吧。

首先PHP。先說優勢:網上抓取和解析html的框架一抓一大把,各種工具直接拿來用就行了,比較省心。缺點:首先速度/效率很成問題,有一次下載電影海報的時候,由於是crontab定期執行,也沒做優化,開的php程序太多,直接把記憶體撐爆了。然後語法方面也很拖沓,各種關鍵字 符號 太多,不夠簡潔,給人一種沒有認真設計過的感覺,寫起來很麻煩。

Node.js。優點是效率、效率還是效率,由於網路是非同步的,所以基本如同幾百個程序併發一樣強大,記憶體和CPU佔用非常小,如果沒有對抓取來的資料進行復雜的運算加工,那麼系統的瓶頸基本就在頻寬和寫入MySQL等資料庫的I/O速度。當然,優點的反面也是缺點,非同步網路代表你需要callback,這時候如果業務需求是線性了,比如必須等待上一個頁面抓取完成後,拿到資料,才能進行下一個頁面的抓取,甚至多層的依賴關係,那就會出現可怕的多層callback!基本這時候,程式碼結構和邏輯就會一團亂麻。當然可以用Step等流程控制工具解決這些問題。

最後說Python。如果你對效率沒有極端的要求,那麼推薦用Python!首先,Python的語法很簡潔,同樣的語句,可以少敲很多次鍵盤。然後,Python非常適合做資料的處理,比如函式引數的打包解包,列表解析,矩陣處理,非常方便。

到此這篇關於python和php哪個更適合寫爬蟲的文章就介紹到這了,更多相關php和python哪個適合做爬蟲內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!