VOOZH about

URL: https://read01.com/PMyPJPN.html

⇱ 關於爬蟲,用戶比較關心的11個問題 - 壹讀


Sunday, Apr 12, 2026

關於爬蟲,用戶比較關心的11個問題

2018/10/25 來源:芝麻代理
👁 Image
...

對於爬蟲的功能來說。用戶比較關心的問題往往是:

1)爬蟲支持多線程麼、爬蟲能用代理麼、爬蟲會爬取重複數據麼、爬蟲能爬取JS生成的信息麼?

不支持多線程、不支持代理、不能過濾重複URL的,那都不叫開源爬蟲,那叫循環執行http請求。

能不能爬js生成的信息和爬蟲本身沒有太大關係。

爬蟲主要是負責遍歷網站和下載頁面。爬js生成的信息和網頁信息抽取模塊有關,往往需要通過模擬瀏覽器(htmlunit,selenium)來完成。這些模擬瀏覽器,往往需要耗費很多的時間來處理一個頁面。所以一種策略就是,使用這些爬蟲來遍歷網站,遇到需要解析的頁面,就將網頁的相關信息提交給模擬瀏覽器,來完成JS生成信息的抽取。

2)爬蟲可以爬取ajax信息麼?

網頁上有一些異步加載的數據,爬取這些數據有兩種方法:使用模擬瀏覽器(問題1中描述過了),或者分析ajax的http請求,自己生成ajax請求的url,獲取返回的數據。如果是自己生成ajax請求,使用開源爬蟲的意義在哪裡?其實是要用開源爬蟲的線程池和URL管理功能(比如斷點爬取)。

如果我已經可以生成我所需要的ajax請求(列表),如何用這些爬蟲來對這些請求進行爬取?

爬蟲往往都是設計成廣度遍歷或者深度遍歷的模式,去遍歷靜態或者動態頁面。爬取ajax信息屬於deep web(深網)的範疇,雖然大多數爬蟲都不直接支持。但是也可以通過一些方法來完成。

3)爬蟲怎麼爬取要登陸的網站?

這些開源爬蟲都支持在爬取時指定cookies,模擬登陸主要是靠cookies。至於cookies怎麼獲取,不是爬蟲管的事情。你可以手動獲取、用http請求模擬登陸或者用模擬瀏覽器自動登陸獲取cookie。

4)爬蟲怎麼抽取網頁的信息?

開源爬蟲一般都會集成網頁抽取工具。主要支持兩種規範:CSS SELECTOR和XPATH。至於哪個好,這裡不評價。

5)爬蟲怎麼保存網頁的信息?

有一些爬蟲,自帶一個模塊負責持久化。比如webmagic,有一個模塊叫pipeline。通過簡單地配置,可以將爬蟲抽取到的信息,持久化到文件、資料庫等。還有一些爬蟲,並沒有直接給用戶提供數據持久化的模塊。比如crawler4j和webcollector。讓用戶自己在網頁處理模塊中添加提交資料庫的操作。至於使用pipeline這種模塊好不好,就和操作資料庫使用ORM好不好這個問題類似,取決於你的業務。

6)爬蟲被網站封了怎麼辦?

爬蟲被網站封了,一般用IP代理就可以解決。但是推薦使用正規公司開發的IP代理軟體,這樣比較能保證爬取的安全性穩定性。

7)網頁可以調用爬蟲麼?

爬蟲的調用是在Web的服務端調用的,平時怎麼用就怎麼用,這些爬蟲都可以使用。

8)爬蟲速度怎麼樣?

單機開源爬蟲的速度,基本都可以講本機的網速用到極限。爬蟲的速度慢,往往是因為用戶把線程數開少了、網速慢,或者在數據持久化時,和資料庫的交互速度慢。而這些東西,往往都是用戶的機器和二次開發的代碼決定的。這些開源爬蟲的速度,都很可以。

9)明明代碼寫對了,爬不到數據,是不是爬蟲有問題,換個爬蟲能解決麼?

如果代碼寫對了,又爬不到數據,換其他爬蟲也是一樣爬不到。遇到這種情況,要麼是網站把你封了,要麼是你爬的數據是javascript生成的。爬不到數據通過換爬蟲是不能解決的。

10)哪個爬蟲可以判斷網站是否爬完、那個爬蟲可以根據主題進行爬取?

爬蟲無法判斷網站是否爬完,只能儘可能覆蓋。

至於根據主題爬取,爬蟲之後把內容爬下來才知道是什麼主題。所以一般都是整個爬下來,然後再去篩選內容。如果嫌爬的太泛,可以通過限制URL正則等方式,來縮小一下範圍。

11)哪個爬蟲的設計模式和構架比較好?

設計模式純屬扯淡。說軟體設計模式好的,都是軟體開發完,然後總結出幾個設計模式。設計模式對軟體開發沒有指導性作用。用設計模式來設計爬蟲,只會使得爬蟲的設計更加臃腫。

至於構架,開源爬蟲目前主要是細節的數據結構的設計,比如爬取線程池、任務隊列,這些大家都能控制好。爬蟲的業務太簡單,談不上什麼構架。

芝麻百萬IP,助力爬蟲大數據時代。

您可能感興趣
免責聲明:本文內容來源于芝麻代理,文章觀點不代表壹讀立場,如若侵犯到您的權益,或涉不實謠言,敬請向我們提出檢舉
最新文章 / 服務條款 / 私隱保護 / DMCA / 聯絡我們

壹讀/READ01.COM