當前位置:編程學習大全網 - 編程語言 - 各種語言寫網絡爬蟲有什麽優點缺點?

各種語言寫網絡爬蟲有什麽優點缺點?

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

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

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

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

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

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

總之容易上手。

缺點:

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

再說說 Python:

優點:

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

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

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

缺點:

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

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

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

  • 上一篇:同樣是單系統的電腦橫機哪個質量及售後服務好點
  • 下一篇:基於Proteus的51系列單片機設計與仿真的內容簡介
  • copyright 2024編程學習大全網