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