Python通过打码平台实现验证码的实现

  

,在爬虫时,经常遇到登录需要验证码的情况,简单的验证码可以自己解决,复制的验证码需要借助机器学习,有一定的难度。还有一个简单的方案就是采用付费的打码平台。

  

比如R若快(http://www.ruokuai.com/client),还有云打码平台(http://www.yundama.com/price.html)

  

下面以R若快为例介绍打码平台的思路:

  

R若快平台需要注册两个用户,一个是普通用户,一个开发者用户,

  

 Python通过打码平台实现验证码的实现

  

 Python通过打码平台实现验证码的实现

  

 Python通过打码平台实现验证码的实现

  

 Python通过打码平台实现验证码的实现

  

1,首先验证码截的图,就是截取网站上登录页面的验证码图片并保存到本地

  

2,调用打码平台的接口把验证码图片发送到打码平台并获取到验证码结果。

  

具体代码如下:

        #?usr/bin/env python   utf - 8编码:      进口的要求   从hashlib进口md5         类RClient(对象):      def __init__(自我,用户名=皊haoks123”,密码=?23456’,soft_id=?13452’, soft_key=癱0d07d796c8e470c92a126df60d61794”):   自我。用户名=用户名   #自我。密码=md5(密码).hexdigest ()   自我。密码=md5 (password.encode (“utf - 8”)) .hexdigest ()   自我。soft_id=soft_id   自我。soft_key=soft_key   自我。base_params={   “用户名”:self.username,   “密码”:self.password,   “softid”: self.soft_id,   “功能键”:self.soft_key,   }   自我。头={   “连接”:“保活”,   “期望”:“100年继续”,   “用户代理”:“本”,   }      def rk_create(自我,im, im_type超时=60):   ”“”   即时通讯:图片字节   im_type:题目类型   ”“”   params={   “类型id”: im_type,   “超时”:超时,   }   params.update (self.base_params)   文件={“图像”:(a.jpg, im)}   r=requests.post (=' http://api.ruokuai.com/create.json ', data=https://www.yisu.com/zixun/params,文件文件,标题=self.headers)   返回r.json ()      def rk_report_error(自我,im_id):“”   im_id:报错题目的ID   ”“”   params={   “id”: im_id,   }   params.update (self.base_params)   r=requests.post (https://www.yisu.com/zixun/params data=' http://api.ruokuai.com/reporterror.json ',头=self.headers)   返回r.json ()      def测试(自我、imagefile im_type=1030):   #我=开放(' E: \ python36_crawl \ Veriycode \ \ code_823代码。png, rb) .read ()   我=开放(imagefile rb) .read ()   结果=自我。im_type rk_create (im)   print(结果['结果'])   返回结果(“结果”)         # if __name__==癬_main__”:   # rc=RClient ()   #我=开放(' E: \ python36_crawl \ Veriycode \ \ code_823代码。png, rb) .read ()   #=rc结果。rk_create (im, 1030)   #打印(结果['结果'])      

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

Python通过打码平台实现验证码的实现