日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

07-爬虫验证码破解实战

發(fā)布時間:2024/9/15 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 07-爬虫验证码破解实战 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

驗證碼識別

  • 基于線上的打碼平臺識別驗證碼
  • 打碼平臺有:
    • 1,超級鷹(推薦)http://www.chaojiying.com/
    • 2,云打碼
    • 打碼兔等
      超級鷹的使用:
      1,注冊登錄購買賬戶積分

      2,創(chuàng)建一個軟件ID

創(chuàng)建好后就會生成一個id信息
3,選擇超級鷹開發(fā)文檔

選擇對應(yīng)的語言

點擊下載





封裝好的超級鷹打碼平臺的類

# -*- coding: utf-8 -*-import requests from hashlib import md5class Chaojiying_Client(object):def __init__(self, username, password, soft_id):self.username = usernamepassword = password.encode('utf8')self.password = md5(password).hexdigest()self.soft_id = soft_idself.base_params = {'user': self.username,'pass2': self.password,'softid': self.soft_id,}self.headers = {'Connection': 'Keep-Alive','User-Agent': 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)',}def PostPic(self, im, codetype):"""im: 圖片字節(jié)codetype: 題目類型 參考 http://www.chaojiying.com/price.html"""params = {'codetype': codetype,}params.update(self.base_params)files = {'userfile': ('ccc.jpg', im)}r = requests.post('http://upload.chaojiying.net/Upload/Processing.php', data=params, files=files, headers=self.headers)return r.json()def ReportError(self, im_id):"""im_id:報錯題目的圖片ID"""params = {'id': im_id,}params.update(self.base_params)r = requests.post('http://upload.chaojiying.net/Upload/ReportError.php', data=params, headers=self.headers)return r.json()def tranformImgCode(): #封裝一個驗證嗎識別的函數(shù)chaojiying = Chaojiying_Client('gemoumou', '1234567', '906463')im = open('D:/py/Chaojiying_Python/code.jpg', 'rb').read()print(chaojiying.PostPic(im, 1902)['pic_str'])return (chaojiying.PostPic(im, 1902)['pic_str'])if __name__ == '__main__':Chaojiying_Client.tranformImgCode()#if __name__ == '__main__': # chaojiying = Chaojiying_Client('超級鷹用戶名', '超級鷹用戶名的密碼', '96001') #用戶中心>>軟件ID 生成一個替換 96001 # im = open('a.jpg', 'rb').read() #本地圖片文件路徑 來替換 a.jpg 有時WIN系統(tǒng)須要// # print chaojiying.PostPic(im, 1902) #1902 驗證碼類型 官方網(wǎng)站>>價格體系 3.4+版 print 后要加()

爬蟲登錄代碼展示

# -*- 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()# 動態(tài)獲取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() #調(diào)用超級鷹打碼平臺識別出的驗證碼 time.sleep(2)login_url = "https://so.gushiwen.cn/user/login.aspx?from=http%3a%2f%2fso.gushiwen.cn%2fuser%2fcollect.aspx" data = {# 如果在請求參數(shù)中看見一組亂序的請求參數(shù),需要抓包驗證下是否動態(tài)變化如下:"__VIEWSTATE" "__VIEWSTATEGENERATOR"# 如果是動態(tài)變化的參數(shù)一般會隱藏在前臺源碼中,我們需要進行xpaht 或者正則 等方式進行提取 就可以獲得實時的參數(shù)# 如果前臺源碼中沒有,我們可以通過抓包全局收索獲取對應(yīng)的數(shù)據(jù)包提取參數(shù)賦值到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,# 驗證碼動態(tài)變化"denglu": "登錄" } # 對點擊登錄按鈕發(fā)起請求,獲取了登錄成功后的頁面源碼數(shù)據(jù) page_text_login = session.post(url = login_url,headers=headers,data=data).text print(page_text_login)


總結(jié)

以上是生活随笔為你收集整理的07-爬虫验证码破解实战的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。