python爬蟲中圖形驗證碼的處理


使用python爬蟲自動登錄時,遇到需要輸入圖形驗證碼的情況,一個比較簡單的處理方法是使用打碼平台識別驗證碼。

使用過兩個打碼平台,打碼兔和若快,若快的價格更便宜,識別率相當。若快需要注冊兩個帳號:開發者帳號與用戶帳號,用戶帳號用於發送識別請求,開發者帳號可以注冊軟件id,並於識別請求進行綁定,可以參與識別收入的分成返現。

獲取圖形驗證碼目前發現的有兩種方式:

0x01 

在抓包中可以直接獲得圖片:發送get請求可以直接獲取圖片(png或jpg格式),這種情況可以使用request.get()返回值的content方法,獲取圖片文件,直接使用打碼平台識別。

0x02

圖片使用base64加密返回:

如上圖,image中包含的就是經過base64加密后的圖片文件。可以通過如下方式對圖片進行還原:

        resp = self.s.get(url, headers=header, verify=False, timeout=10)
        resp_json=json.loads(resp.text)
        CaptchaId=resp_json.get('CaptchaId')
        ImageStr=resp_json.get('Image')
        imgdata=base64.b64decode(ImageStr)
        file=open('captcha.gif'),'wb')
        file.write(imgdata)
        file.close()

圖片格式不一定是gif,可能是jpg或png,如果寫錯了,結果無法打開,可以通過網上在線的圖片解碼網站驗證一下圖片格式。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM