07-爬虫验证码破解实战
生活随笔
收集整理的這篇文章主要介紹了
07-爬虫验证码破解实战
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
驗證碼識別
- 基于線上的打碼平臺識別驗證碼
- 打碼平臺有:
- 1,超級鷹(推薦)http://www.chaojiying.com/
- 2,云打碼
- 打碼兔等
超級鷹的使用:
1,注冊登錄購買賬戶積分
2,創建一個軟件ID
創建好后就會生成一個id信息
3,選擇超級鷹開發文檔
選擇對應的語言
點擊下載
封裝好的超級鷹打碼平臺的類
爬蟲登錄代碼展示
# -*- coding: utf-8 -*- import requests from lxml import etree from Chaojiying_Python import chaojiying import timeheaders = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36"} #模仿瀏覽器UA頭session = requests.Session()# 動態獲取cookie # 識別驗證碼 url ="https://so.gushiwen.cn/user/login.aspx?from=http://so.gushiwen.cn/user/collect.aspx" page_text = session.get(url=url,headers=headers).text # 解析驗證碼圖片 tree = etree.HTML(page_text) img_src = "https://so.gushiwen.cn/"+tree.xpath('//*[@id="imgCode"]/@src')[0] # 將驗證碼圖片保存到本地 img_data = session.get(img_src,headers=headers).content with open ('D:/py/Chaojiying_Python/code.jpg',"wb") as fp:fp.write(img_data)# 識別驗證碼 code_text = chaojiying.Chaojiying_Client.tranformImgCode() #調用超級鷹打碼平臺識別出的驗證碼 time.sleep(2)login_url = "https://so.gushiwen.cn/user/login.aspx?from=http%3a%2f%2fso.gushiwen.cn%2fuser%2fcollect.aspx" data = {# 如果在請求參數中看見一組亂序的請求參數,需要抓包驗證下是否動態變化如下:"__VIEWSTATE" "__VIEWSTATEGENERATOR"# 如果是動態變化的參數一般會隱藏在前臺源碼中,我們需要進行xpaht 或者正則 等方式進行提取 就可以獲得實時的參數# 如果前臺源碼中沒有,我們可以通過抓包全局收索獲取對應的數據包提取參數賦值到data中"__VIEWSTATE": "wLzVsPN64jZIa8aQJI9HzVvaaknH6pBhUG+UOMQKX8NEFV49xwtLRgU8GH4O1o+mClDbtnYiKbXMOIM6VRh7HGzM4hpMpd0qBUM3b/pXlzZ2gnbcuB+5RUBJ/i0=","__VIEWSTATEGENERATOR": "C93BE1AE","from": "http://so.gushiwen.cn/user/collect.aspx","email": "18398141234","pwd": "123456","code": code_text,# 驗證碼動態變化"denglu": "登錄" } # 對點擊登錄按鈕發起請求,獲取了登錄成功后的頁面源碼數據 page_text_login = session.post(url = login_url,headers=headers,data=data).text print(page_text_login)
總結
以上是生活随笔為你收集整理的07-爬虫验证码破解实战的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 06-代理爬虫实战
- 下一篇: 08-百度ai语音合成