常見的反爬手段和解決思路

2021-10-10 02:15:27 字數 1256 閱讀 7644

誤傷:在反爬蟲的過程中,錯誤的將普通使用者識別為爬蟲。誤傷率高的反爬蟲策略,效果再好也不能用。

攔截:成功地阻止爬蟲訪問。這裡會有攔截率的概念。通常來說,攔截率越高的反爬蟲策略,誤傷的可能性就越高,因此需要做個權衡。

資源:機器成本與人力成本的總和。

1 通過headers欄位來反爬

headers中有很多字段,這些欄位都有可能會被對方伺服器拿過來進行判斷是否為爬蟲

1 通過headers中的user-agent欄位來反爬

2 通過referer欄位或者使其它欄位來反爬

3 通過cookie來反爬

2 通過請求引數來反爬

請求引數的獲取方法有很多,向伺服器傳送請求,很多時候需要攜帶請求引數,通常伺服器端可以通過檢查請求引數是否正確來判斷是否為爬蟲

1 通過html靜態檔案中獲取請求資料

2 通過傳送請求獲取請求資料

3 通過js生成請求引數

4 通過驗證碼來反爬

1 基於請求頻率或者總請求數量

爬蟲的行為與普通使用者有著明顯的區別,爬蟲的請求頻率與請求次數要遠高於普通使用者

1 通過請求ip/賬號單位時間內總請求數量進行反爬

解決辦法:對應的通過購買高質量的ip的方式能夠解決問題/購買多個賬號

2 通過同一ip/賬號請求之間的時間間隔進行反爬

解決辦法:請求之間進行隨機等待,模擬真實使用者操作,在新增時間間隔後,為了能夠高速獲取資料,盡量使用**池,如果是賬號,則將賬號請求之間設定隨機休眠

3 通過對請求ip/賬號每天請求次數設定閾值進行反爬

2 根據爬取行為進行反爬,通常在爬取步驟上做分析

1 通過js實現跳轉來反爬

解決辦法:多次抓包獲取條狀url,分析規律

2 通過蜜罐(陷阱)獲取爬蟲ip(獲取**ip),進行反爬

3 通過假資料反爬

4 阻塞任務佇列

5 阻塞網路io

解決辦法:觀察爬蟲執行狀態/多執行緒對請求執行緒計時/傳送請求線

6 運維平台綜合審計

1 對響應中含有的資料進行特殊化處理

通常的特殊化處理主要指的就是css資料偏移/自定義字型/資料加密/資料/特殊編碼格式等

1 通過自定義字型來反爬,例如貓眼電影的評分

2 通過css來反爬

3 通過js動態生成資料進行反爬

4 通過資料化反爬

5 通過編碼格式進行反爬

常見的反爬手段與解決方法

headers中的user agent欄位反爬 解決 隨機生成user agent pip install fake useragent from fake useragent import useragent ua useragent for i in range 10 隨機生成各種瀏覽器的ua ...

反爬以及解決思路

常見的反爬手段和解決思路 明確反反爬的主要思路 反反爬的主要思路就是 盡可能的去模擬瀏覽器,瀏覽器在如何操作,中就如何去實現。瀏覽器先請求了位址url1,保留了cookie在本地,之後請求位址url2,帶上了之前的cookie,中也可以這樣去實現。很多時候,爬蟲中攜帶的headers欄位,cooki...

Python常見的反爬手段和反反爬蟲方法

因為反爬蟲暫時是個較新的領域,因此有些定義要自己下 誤傷 在反爬蟲的過程中,錯誤的將普通使用者識別為爬蟲。誤傷率高的反爬蟲策略,效果再好也不能用。攔截 成功地阻止爬蟲訪問。這裡會有攔截率的概念。通常來說,攔截率越高的反爬蟲策略,誤傷的可能性就越高。因此需要做個權衡。資源 機器成本與人力成本的總和。這...