天天看點

反反爬蟲利器!教你怎麼用熊貓代理ip

喜歡爬蟲的夥伴都知道,在爬網站的内容的時候并不是一爬就可以了,有時候就會遇到一些網站的反爬蟲,折回讓你爬不到資料,給你傳回一些404,403或者500的狀态碼,這有時候會讓人苦不堪言,在你爬的資料較多時,網站認為你是一個機器,就不讓你爬了。反爬蟲主要有以下幾種方式:

通過UA判斷。這是最低級的判斷,一般反爬蟲不會用這個做唯一判斷,因為反反爬蟲非常容易,直接随機UA即可解決。

通過單IP頻繁通路判斷。這個判斷簡單,而且反反爬蟲比較費力,反爬蟲絕佳方案。需采用多IP抓取。

通過Cookie判斷,例如通過會員制賬号密碼登陸,判斷單賬号短時間抓取次數判斷。這個反反爬蟲也很費力。需采用多賬号抓取。

動态頁面加載。這個考驗前端工程師的功底,如果前端寫的好,各種JS判斷,各種邏輯,像百度,淘寶一樣,post登入很難。較好的方法,但是對于大牛,還是防不勝防。反反爬蟲多采用渲染浏覽器抓取,效率低下。

采用驗證碼。這裡要麼是登入的時候有驗證碼,要麼是判斷是爬蟲時,不封IP,而是采用驗證碼驗證,例如鍊家網。驗證碼是反爬蟲成本效益較高的方案。反反爬蟲一般接入OCR驗證碼識别平台或者人工打碼平台,亦或者利用Tesseract OCR識别,亦或者采用神經網絡訓練識别驗證碼等。

反反爬蟲利器!教你怎麼用熊貓代理ip

代理IP是最常見的一種多IP爬蟲方法。在請求Headers中加入代理IP位址,即可實作代理IP抓取。缺陷是爬取速度和代理IP的速度息息相關。而且好的IP費用較高,免費的速度普遍不高。

當使用熊貓代理ip時可按照以下動态代理接入文檔進行操作

1.說明

使用動态代理:

1.動态并發産品和動态按量包時産品代理設定為 dynamic.xiongmaodaili.com:8089;動态按量産品需将代理設定為 dynamic.xiongmaodaili.com:8088

2.在請求的header裡面添加Proxy-Authorization參數(下面有詳細的說明)

3.通路https協定頭需要先忽略證書驗證

2.使用方法

簽名算法參數:

secret 個人密鑰

orderno 訂單号

timestamp 時間戳/1000(也就是10位時間戳)

注:change參數不加入簽名算法,不傳預設為true(即使用每次通路都改變ip政策)

認證流程

2.1客戶根據三個參數拼接出字元串

txt=“orderno=xxxx,secret=xxxxxxxxx,timestamp=xxxxxxxxxx”

2.2簽名根據planText 拼接出的字元串 進行MD5() ,然後再轉成大寫 例如

sign = org.apache.commons.codec.digest.DigestUtils.md5Hex(txt).toUpperCase();

2.3客戶通過head中添加Proxy-Authorization 例如

Proxy-Authorization:sign=38UDHCCXXXXX&orderno=DT2017230151xxxxxxx&timestamp=1487753521&change=true

2.4 伺服器接受到請求,認證成功則開始執行代理服務,失敗則傳回錯誤提示,用utf-8編碼即可檢視錯誤原因。

示例代碼請參照:https://github.com/XMPROXY/XM-PROXY

繼續閱讀