Python 通過(guò)打碼平臺(tái)實(shí)現(xiàn)驗(yàn)證碼的實(shí)現(xiàn)
在爬蟲(chóng)時(shí),經(jīng)常遇到登錄需要驗(yàn)證碼的情況,簡(jiǎn)單的驗(yàn)證碼可以自己解決,復(fù)制的驗(yàn)證碼需要借助機(jī)器學(xué)習(xí),有一定的難度。還有一個(gè)簡(jiǎn)單的方案就是采用付費(fèi)的打碼平臺(tái)。
比如R若快(http://www.ruokuai.com/client),還有云打碼平臺(tái)(http://www.yundama.com/price.html)
下面以R若快為例介紹打碼平臺(tái)的思路:
R若快平臺(tái)需要注冊(cè)兩個(gè)用戶,一個(gè)是普通用戶,一個(gè)開(kāi)發(fā)者用戶,
1、首先驗(yàn)證碼截圖,就是截取網(wǎng)站上登錄頁(yè)面的驗(yàn)證碼圖片并保存到本地
2、調(diào)用打碼平臺(tái)的接口把驗(yàn)證碼圖片發(fā)送到打碼平臺(tái)并獲取到驗(yàn)證碼結(jié)果。
具體代碼如下:
#!/usr/bin/env python # coding:utf-8 import requests from hashlib import md5 class RClient(object): def __init__(self, username='shaoks123', password='123456', soft_id='113452', soft_key='c0d07d796c8e470c92a126df60d61794'): self.username = username # self.password = md5(password).hexdigest() self.password = md5(password.encode("utf-8")).hexdigest() self.soft_id = soft_id self.soft_key = soft_key self.base_params = { 'username': self.username, 'password': self.password, 'softid': self.soft_id, 'softkey': self.soft_key, } self.headers = { 'Connection': 'Keep-Alive', 'Expect': '100-continue', 'User-Agent': 'ben', } def rk_create(self, im, im_type, timeout=60): """ im: 圖片字節(jié) im_type: 題目類型 """ params = { 'typeid': im_type, 'timeout': timeout, } params.update(self.base_params) files = {'image': ('a.jpg', im)} r = requests.post('http://api.ruokuai.com/create.json', data=params, files=files, headers=self.headers) return r.json() def rk_report_error(self, im_id): """ im_id:報(bào)錯(cuò)題目的ID """ params = { 'id': im_id, } params.update(self.base_params) r = requests.post('http://api.ruokuai.com/reporterror.json', data=params, headers=self.headers) return r.json() def test(self,imagefile,im_type=1030): # im = open('E:\python36_crawl\Veriycode\code\code_823.png', 'rb').read() im = open(imagefile, 'rb').read() result = self.rk_create(im, im_type) print(result['Result']) return result['Result'] # if __name__ == '__main__': # rc = RClient() # im = open('E:\python36_crawl\Veriycode\code\code_823.png', 'rb').read() # result = rc.rk_create(im, 1030) # print(result['Result'])
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Python爬蟲(chóng)模擬登錄帶驗(yàn)證碼網(wǎng)站
- python實(shí)現(xiàn)發(fā)送和獲取手機(jī)短信驗(yàn)證碼
- python驗(yàn)證碼識(shí)別的實(shí)例詳解
- Python爬蟲(chóng)爬驗(yàn)證碼實(shí)現(xiàn)功能詳解
- SpringBoot優(yōu)化啟動(dòng)速度的方法實(shí)現(xiàn)
- python 圖片驗(yàn)證碼代碼
- 利用Python破解驗(yàn)證碼實(shí)例詳解
- Python驗(yàn)證碼識(shí)別處理實(shí)例
- Python生成隨機(jī)驗(yàn)證碼的兩種方法
- 詳解Python驗(yàn)證碼識(shí)別
- Python隨機(jī)生成一個(gè)6位的驗(yàn)證碼代碼分享
- Python生成驗(yàn)證碼實(shí)例
- Python實(shí)現(xiàn)破解12306圖片驗(yàn)證碼的方法分析
相關(guān)文章
PyMongo進(jìn)行MongoDB查詢和插入操作的高效使用示例
這篇文章主要為大家介紹了PyMongo進(jìn)行MongoDB查詢和插入操作的高效使用示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11conda查看、創(chuàng)建、刪除、激活與退出環(huán)境命令詳解
在不同的項(xiàng)目中經(jīng)常需要conda來(lái)配置環(huán)境,這樣能夠?qū)崿F(xiàn)不同版本的python和庫(kù)的隨意切換,并且減少了很多不必要的麻煩,下面這篇文章主要給大家介紹了關(guān)于conda查看、創(chuàng)建、刪除、激活與退出環(huán)境命令的相關(guān)資料,需要的朋友可以參考下2023-05-05django項(xiàng)目簡(jiǎn)單調(diào)取百度翻譯接口的方法
這篇文章主要介紹了django項(xiàng)目簡(jiǎn)單調(diào)取百度翻譯接口的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下2019-08-08詳解用python自制微信機(jī)器人,定時(shí)發(fā)送天氣預(yù)報(bào)
這篇文章主要介紹了用python自制微信機(jī)器人,定時(shí)發(fā)送天氣預(yù)報(bào),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03python中plot實(shí)現(xiàn)即時(shí)數(shù)據(jù)動(dòng)態(tài)顯示方法
這篇文章主要為大家詳細(xì)介紹了python中plot實(shí)現(xiàn)即時(shí)數(shù)據(jù)動(dòng)態(tài)顯示方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-06-06Python內(nèi)置的HTTP協(xié)議服務(wù)器SimpleHTTPServer使用指南
這篇文章主要介紹了Python內(nèi)置的HTTP協(xié)議服務(wù)器SimpleHTTPServer使用指南,SimpleHTTPServer本身的功能十分簡(jiǎn)單,文中介紹了需要的朋友可以參考下2016-03-03