1. 程式人生 > 實用技巧 >反爬筆記

反爬筆記

1 伺服器反爬的原因
爬蟲佔總PV高,浪費資源
資源被批量爬走,喪失競爭力

2 伺服器常反什麼樣的爬蟲
應屆畢業生
創業小公司
沒法停止的失控小爬蟲
成型的商業對手
抽風的搜尋引擎

3 反爬蟲領域常見的一些概念
爬蟲
反爬蟲
誤傷
攔截
資源

4 反爬的三個反向
基於身份識別
基於爬蟲行為
基於資料加密

5 常見基於身份識別進行反爬
- 基於headers欄位進行反爬
1 通過User-Agent欄位進行反爬
新增隨機UA
2 通過referer欄位或者其他欄位進行反爬
新增referer欄位
3 通過cookie來反爬
進行模擬登入,成功獲取cookie之後在進行資料爬取

- 通過請求引數來反爬
    1 通過從html靜態檔案中獲取請求資料
        仔細分析抓包得到的每一個包,搞清楚請求中間的聯絡
    2 通過傳送請求獲取請求資料
        仔細分析抓包得到的每一個包,搞清楚請求中間的聯絡,搞清除請求引數的來源
    3 通過js生成請求引數
        分析js,觀察加密的實現過程,通過js2py獲取js的執行結果,或者用selenium實現
    4 通過驗證碼來反爬
        使用打碼平臺識別

6 常見基於爬蟲行為進行反爬
- 基於請求頻繁或總請求數量
1 通過請求ip/賬號單位時間內總請求數量進行反爬
對應的通過購買高質量的ip的方法能夠解決問題/購買多個賬號
2 通過同一ip/賬號請求之間的間隔進行反爬
請求之間進行隨機等待,模擬真實使用者操作,在新增時間間隔後,為了能夠高速獲取資料,
儘量使用代理池,如果是賬號,則將賬號請求之間設定隨機睡眠
3 通過對請求ip/賬號每天請求次數設定值,進行反爬
對應的通過購買高質量的ip的方法能夠解決問題/購買多個賬號,同時設定請求隨機休眠

- 根據爬取行為進行反爬,通常在爬取步驟上作分析
    1 通過js實現跳轉來反爬
        多次抓包獲取條狀url, 分析規律
    2 通過蜜罐(陷阱)獲取爬蟲ip(或者代理ip),進行反爬
        完成爬蟲編寫後,使用代理批量爬取/仔細分析響應內容結構,找出頁面存在的陷阱
    3 通過假資料反爬
        長期執行,核對資料庫中資料同實際頁面中資料對應情況,如何存在問題/仔細分析響應內容
    4 阻塞任務佇列
        觀察執行過程中請求響應狀態/仔細分析原始碼獲取垃圾url生成規律,對url進行過濾
    5 阻塞網路io
        觀察爬蟲執行狀態/多執行緒對請求執行緒計時/傳送請求線
    6 運維平臺綜合審計
        仔細觀察分析,長期執行測試目標網站,檢查資料採集速度,多方面處理

7 常見基於資料加密進行反爬
通常的特殊化處理主要指的就是css資料偏移自定義字型/資料加密/資料圖片/特殊編碼格式等
- 對響應中含有的資料進行特殊處理
1 通過自定義字型來反爬
切換到手機版/解析字型檔案進行翻譯
2 通過css來反爬
計算css的偏移
3 通過js動態生成資料進行反爬
解析關鍵js,獲得資料生成流程,模擬生成資料
4 通過圖片化反爬
通過使用圖片解析引擎從圖片中解析資料
5 通過編碼格式進行反爬
根據原始碼進行多格式編碼,或者真正的編碼格式