python反爬蟲策略 python反爬蟲手冊

2021-10-11 12:45:29 字數 1154 閱讀 1036

user-agent識別

修改請求頭資訊裡的user-agent

請求頭資訊識別

比如說referer, content-type,請求方法(post, get)

構造相應的請求頭資訊。比如說referer,我們在提取url的時候,要把url所在頁面的url也儲存起來,並放到request.headers。

非同步載入

我們需要分析頁面的網路請求,從中找出和我們想要的資料相關的請求,並分析它的請求頭資訊、引數、cookie,然後根據這些資訊構造我們的請求。通常來說都是ajax請求,也有請求,比如的lazy load,通過js在頁面載入後修改的src屬性。一般都會有其他的自定義屬性存在,比如說"_src"。總之,可以找到一些id或者鏈結。注意觀察相關dom節點樹上的特殊屬性。

請求引數加密

一般是在前端通過一定的計算,構造出乙個雜湊值。需要分析前端的**,找出具體計算的**邏輯,並用python再實現。如果前端的**經過混淆,並且**量十分巨大,可以使用selenium或者splash等引擎去請求。但是,如果爬取的資料需求量比較大,我們還是要通過直接呼叫對方介面的形式去獲取資料。

請求結果加密

1. json資料裡面加密

比如攜程酒店房型列表介面,用它自己的js解密,或者分析它的js前端邏輯,用python**實現出來。

2. css加密

比如大眾點評,通過css樣式去代替某個字元。我們需要同時爬取css檔案,並且分析css檔案內的樣式,最後定位到svg檔案,並分析提取svg內的內容,完成替換。

3. 字型加密

cookie限制

登入、session限制,比如新片場,拿到登入以後的cookie,然後set到頭資訊裡面,這樣請求的時候就相當於登入了。

ip頻率限制

需要準備大量的ip**,獲得ip**的方式有:

自己搭建**伺服器(tinyproxy, squid+動態撥號,ddns)

付費購買

爬取公開網路上**(可用性比較低)

控制爬取頻率,保持不被封的情況下的最合適的併發數量。

驗證碼:

嘗試可否繞過前端驗證,直接請求具體的介面,以繞開驗證碼.

可以用識別庫去識別某些比較簡單的驗證碼

接入雲打碼平台

用機器學習訓練驗證碼的庫,然後識別

n

反爬蟲策略總結

反爬策略 1.最常見的 ip檢測,ua檢測 2.cookie檢測 3.需要登陸,又衍生各種出登陸驗證,驗證碼,滑塊等 4.引數加密 包括請求引數加密和返回資料加密。大致分為兩大塊 js加密及css反扒 js加密需要進行js逆向解析,常見有rsa,aes,des,md5,base64 及一些自定義加密...

Scrapy繞過反爬蟲策略

方法1 修改setting.py中的user agent user agent 方法2 修改setting中的default request headers default request headers 也就是不啟用cookies middleware,不向server傳送cookies,有些 通...

抖音爬蟲教程,python爬蟲採集反爬策略

一 爬蟲與反爬簡介 爬蟲就是我們利用某種程式代替人工批量讀取 獲取 上的資料資訊。而反爬則是跟爬蟲的對立面,是竭盡全力阻止非人為的採集 資訊,二者相生相剋,水火不容,到目前為止大部分的 都還是可以輕易的爬取資料資訊。爬蟲想要繞過被反的策略就是盡可能的讓伺服器人你不是機器程式,所以在程式中就要把自己偽...