爬蟲的道魔策略

2021-07-11 06:10:23 字數 2077 閱讀 3879

**的反爬蟲

網路爬蟲在訪問**並不是乙個常規的使用者行為,通常都會對**的頻寬和伺服器帶來一些壓力。一些比較健壯的網路爬蟲通常會控制對**的訪問頻率。

但是大多數網路爬蟲可能並不會採取措施,為了防止網路爬蟲帶來的負面影響,一些的**會對來訪者的訪問做限制。

常見的反爬蟲措施

1.人工識別、限制ip

當**運維人員發現**伺服器負載突然增高等異常時,通過分析訪問記錄可以找到爬蟲的**ip,然後直接封鎖爬蟲的ip位址或者所在的c網段位址

網路爬蟲的應對措施:採用**

2.通過user-agent+ip反爬蟲

有時候通過簡單的封鎖c網段位址很可能造成「誤傷」,乙個c段**中如果只有乙個爬蟲,那麼其他的使用者就被「誤殺」了。不同的使用者訪問**的時候有不同

的user-agent,所以通過user-agent+ip反爬蟲也是一種策略。

爬蟲在爬取網頁的時候,為了盡可能的將自己偽裝為瀏覽器,通常會宣告自己的user-agent資訊,通過獲取user-agent資訊和ip,**就可以通過user-agent+ip

的形式來反爬蟲。

網路爬蟲的應對措施:採用**+動態user-agent

3.延時響應

對於高階一點的爬蟲,不管是限制ip還是user-agent+ip反爬蟲,都能輕鬆繞過。於是聰明的**運維人員想出了乙個高招,針對網路爬蟲想要在短時間

內獲取大量資訊的特點,設計出了延時響應的反爬蟲策略:如果**反爬蟲程式通過分析user-agent和ip發現來訪者可能是網路爬蟲,則會對請求作出延時響應,如果延時的時間

超過了爬蟲設定的連線超時時間,爬蟲將報連線超時的錯誤。這種策略比user-agent+ip好的地方就是可以減少一些「誤傷」,但對於爬蟲來說這種策略和上一種沒有本質區別,

只是懲罰爬蟲的方式不一樣了。

網路爬蟲的應對措施:採用**+動態user-agent

4.將重要資料使用js載入

網路爬蟲訪問**是為了採集需要的資訊。如果將這些資料使用js來載入,對於沒有執行js能力的大部分爬蟲來說這簡直就是滅頂之災。

(各大電商**就是使用這種方法)

網路爬蟲的應對措施:分析js請求的url以及引數,直接對此url進行請求

5.限制訪問頻率

對同乙個ip或者user-agent的訪問頻率做限制。如果爬蟲的訪問頻率超過限制,則返回驗證碼頁面或者限制訪問。

網路爬蟲的應對措施:分布式或者適當減低訪問頻率

6.需要登入訪問

如果是內容比較優質的**,通常會要求使用者登入後訪問。而對於爬蟲來說,登入是乙個難點,尤其是有複雜驗證碼的登陸。

網路爬蟲的應對措施:程式識別驗證碼模擬登陸、人工識別驗證碼模擬登陸

爬蟲和反爬蟲的終於對決(假設一下):

反爬蟲:如上六種反爬策略隨意組合,此外設定爬蟲陷阱。

題外話:

對於爬蟲開發者來說,在抓取資料的時候盡量不要對目標**造成太多的負面影響。

以上來自:

來自:在網路爬蟲抓取資訊的過程中,如果抓取頻率高過了**的設定閥值,將會被禁止訪問。通常,**的反爬蟲機制都是依據ip來標識爬蟲的。

於是在爬蟲的開發者通常需要採取兩種手段來解決這個問題:

1、放慢抓取速度,減小對於目標**造成的壓力。但是這樣會減少單位時間類的抓取量。

2、第二種方法是通過設定**ip等手段,突破反爬蟲機制繼續高頻率抓取。但是這樣需要多個穩定的**ip。

**ip可以搜尋到免費的,但是可能不太穩定,也有收費的,但是不一定划算,也可能不是長久之計。

說明:本人牆裂建議不要高頻率抓取。

通常,在抓取過程中遇到禁止訪問,可以重新進行adsl撥號,獲取新的ip,從而可以繼續抓取。但是這樣在多**多執行緒抓取的時候,如果某乙個**的抓取被禁止了,

同時也影響到了其他**的抓取,整體來說也會降低抓取速度。

同樣也是基於adsl撥號,不同的是,需要兩台能夠進行adsl撥號的伺服器,抓取過程中使用這兩台伺服器作為**。

假設有a、b兩台可以進行adsl撥號的伺服器。爬蟲程式在c伺服器上執行,使用a作為**訪問外網,如果在抓取過程中遇到禁止訪問的情況,立即將**切換為b,

然後將a進行重新撥號。如果再遇到禁止訪問就切換為a做**,b再撥號,如此反覆。如下圖:

使用a為**,b撥號:

python爬蟲去重策略 爬蟲的去重策略

1.爬蟲時將爬取過的url存放到資料庫中,利用資料庫進行url的去重 每請求乙個url之前,都現在資料庫中查詢一下。方法最簡單,效率是最低的。2.將已經請求過的url儲存到set中,而set集合是在記憶體中建立的,訪問效率比資料庫的方式要快很多,只需要很簡單的乙個方法,就可以實現url的去重。缺點 ...

常見爬蟲策略

方法一 利用 協議和sitemap去分析 結構 robots 協議 也稱為爬蟲協議 機械人協議,全稱是 網路爬蟲排除標準 該協議檔案放置在 根目錄下,在訪問 的時候要檢視的第乙個檔案就是robots.txt協議檔案,通過robots.txt協議檔案告訴搜尋引擎哪些頁面可以抓取,哪些頁面不能抓取,但是...

反反爬蟲策略

點選我前往github檢視源 別忘記star 自建 池 一.對請求ip等進行限制的。以知乎為例,當我們的請求速度到達一定的閾值,會觸發反爬蟲機制!在我爬取知乎百萬使用者資訊中,出現了429錯誤 too many requests 詳情請見我的部落格 應對策略.1.降低爬蟲採集速率,使速率略低於閾值 ...