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

各種語(yǔ)言寫(xiě)網(wǎng)絡(luò)爬蟲(chóng)有什么優(yōu)點(diǎn)缺點(diǎn)

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

用 PHP 和 Python 都寫(xiě)過(guò)爬蟲(chóng)和正文提取程序。

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

缺點(diǎn):
     1.并發(fā)處理能力較弱:由于當(dāng)時(shí) PHP 沒(méi)有線程、進(jìn)程功能,要想實(shí)現(xiàn)并發(fā)需要借用多路服用模型,PHP 使用的是 select 模型。實(shí)現(xiàn)其來(lái)比較麻煩,可能是因?yàn)樗絾?wèn)題我的程序經(jīng)常出現(xiàn)一些錯(cuò)誤,導(dǎo)致漏抓。

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

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

Java 和 C++ 當(dāng)時(shí)也考察過(guò),相對(duì)腳本語(yǔ)言比較麻煩,所以放棄。

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


Notes de version

Entrées populaires