反爬與反反爬(一)

2021-10-06 09:38:24 字數 1408 閱讀 8018

1.伺服器反爬原因

2.伺服器常反什麼樣的爬蟲

3.反爬蟲領域常見的一些概念

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

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

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

這裡要知道,人力成本也是資源,而且比機器更重要。因為根據摩爾定律,機器越來越便宜。而根據it行業的發展趨勢,程式設計師越來越貴。因此,通常伺服器反爬就是讓爬蟲工程師加班才是王道,機器成本並不是特別值錢。

4.反爬的三個方向

5.常見基於身份識別進行反爬

1.通過headers欄位來反爬

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

1.2通過referer欄位或者其他欄位來反爬

1.3通過cookie來反爬

2.通過請求引數來反爬

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

2.1通過從html靜態檔案中獲取請求資料(github登入資料)

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

2.3通過js生成請求引數

2.4通過驗證碼來反爬

6.常見基於爬蟲行為進行反爬

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

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

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

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

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

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

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

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

2.1通過js實現跳轉來反爬

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

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

2.3通過假資料反爬

2.4阻塞任務佇列

2.5阻塞網路io

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

2.6運維平台綜合審計

7.常見基於資料加密進行反爬

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

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

7.1通過自定義字型來反爬

7.2通過css來反爬

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

7.4通過化資料反爬

7.5通過編碼格式進行反爬

python爬蟲之反爬與反反爬技術

1 headers請求頭協議 可以在每個網頁的這裡找到 這裡的request headers就可以找到我們需要加上的請求頭資訊,使用requests模組一般情況下加上 user agent 就行了。下面對請求頭資訊裡的幾個部分做乙個簡單介紹 user agent 儲存在使用者終端上的資料 refer...

神仙打架!看反爬和反反爬如何博弈!

說到大資料的資料收集,爬蟲技術時下已成為眾多企業獲取資料的重要途徑。爬蟲本質上是模擬瀏覽器對目標 發出請求,從而獲取對方的資料。當然有了反爬,自然會有反反爬,畢竟爬蟲工程師也都不是吃素的。反爬和反反爬就是兩撥工程師鬥智鬥勇的博弈過程。好了,接下來小課就為你說說常見的反爬及反反爬策略 手段1 驗證us...

爬蟲反爬與反爬破解總結

這裡將自己收集的,遇到的反爬機制進行簡單的記錄和簡單的分析,如果有大佬路過,看到理解不正確的地方,希望可以指出來,學習進步,在此感激不盡。最基礎的記錄一下標題 抓包copy乙份,header字典賦值,requests傳入,簡單破解。防之前爬乙個免費ip 的 的時候,很好玩,感覺是把乙個瀏覽器的所有h...