亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

各種語言寫網(wǎng)絡(luò)爬蟲有什么優(yōu)點缺點

Original 2016-10-31 17:29:54 912
abstract:用 PHP 和 Python 都寫過爬蟲和正文提取程序。最開始使用 PHP 所以先說說 PHP 的優(yōu)點:1.語言比較簡單,PHP 是非常隨意的一種語言。寫起來容易讓你把精力放在你要做的事情上,而不是各種語法規(guī)則等等。2.各種功能模塊齊全,這里分兩部分:      1.網(wǎng)頁下載:curl 等擴展庫;      2.文檔解析:dom、xpat

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

最開始使用 PHP 所以先說說 PHP 的優(yōu)點:
1.語言比較簡單,PHP 是非常隨意的一種語言。寫起來容易讓你把精力放在你要做的事情上,而不是各種語法規(guī)則等等。
2.各種功能模塊齊全,這里分兩部分:
     1.網(wǎng)頁下載:curl 等擴展庫;
     2.文檔解析:dom、xpath、tidy、各種轉(zhuǎn)碼工具,可能跟題主的問題不太一樣,我的爬蟲需要提取正文,所以需要很復(fù)雜的文本處理,所以各種方便的文本處理工具是我的大愛。;
總之容易上手。

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

再說說 Python:
優(yōu)點:
     1.各種爬蟲框架,方便高效的下載網(wǎng)頁;
     2.多線程、進程模型成熟穩(wěn)定,爬蟲是一個典型的多任務(wù)處理場景,請求頁面時會有較長的延遲,總體來說更多的是等待。多線程或進程會更優(yōu)化程序效率,提升整個系統(tǒng)下載和分析能力。
     3.GAE 的支持,當(dāng)初寫爬蟲的時候剛剛有 GAE,而且只支持 Python ,利用 GAE 創(chuàng)建的爬蟲幾乎免費,最多的時候我有近千個應(yīng)用實例在工作。

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

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

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


Release Notes

Popular Entries