記錄自己遇到的反爬策略與如何處理(使用python3)论悴。
驗證碼類型如下圖所示:
處理思路:
1雳灾、抓包分析,找到請求驗證碼圖片的url憔鬼;
2、請求驗證碼圖片(可能需要構(gòu)造參數(shù))胃夏,獲取響應(yīng)轴或。
? ? ?(1)我這里返回結(jié)果是一個json,圖片是base64編碼的一串字符串仰禀。將第一照雁、二張圖? ? ? ? ? ? ? ? ? ? 片分別保存:
? ? ? ? ? ? ? #解碼圖片
? ? ? ? ? ? ? import base64
? ? ? ? ? ? ? base64.b64decode('base64編碼的圖片字符串')
3、使用PIL模塊處理保存的兩張圖片答恶,通過復(fù)制饺蚊、粘貼,將要求悬嗓、第一污呼、二張圖片合成打碼? ? ? ? 平臺(我用的打碼平臺需要合成一張圖片)的一張圖片,結(jié)果如下圖:
注:可以預(yù)先準備一張背景圖片包竹,內(nèi)容是除去紅框中內(nèi)容剩下的內(nèi)容燕酷。windows下打開繪圖工具,查看下A周瞎、B各自所在的像素坐標位置苗缩,將兩張圖片分別粘貼到對應(yīng)位置即可。
4声诸、調(diào)用打碼平臺demo酱讶,利用打碼平臺識別驗證碼,返回一串坐標彼乌。此處要注意浴麻,打碼平臺? ? ? ? 識別的坐標是要識別的目標'字'在合成后的圖片中的像素坐標得问,正確的坐標應(yīng)該是目? ? ? ? ? ? ? ? 標‘字’在上圖綠框中的像素坐標位置,打開繪圖工具软免,查看像素坐標宫纬,減掉偏移量即可。
5膏萧、將識別后的坐標提交到服務(wù)器漓骚。