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


Posted in Python onMay 13, 2019

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

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

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

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

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

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

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

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

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

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

具体代码如下:

#!/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: 图片字节
    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:报错题目的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'])

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

Python 相关文章推荐
Python学习之asyncore模块用法实例教程
Sep 29 Python
Python中的__new__与__init__魔术方法理解笔记
Nov 08 Python
Python实现过滤单个Android程序日志脚本分享
Jan 16 Python
介绍Python中的__future__模块
Apr 27 Python
python实现从字典中删除元素的方法
May 04 Python
使用python实现rsa算法代码
Feb 17 Python
python实现kMeans算法
Dec 21 Python
Python实现matplotlib显示中文的方法详解
Feb 06 Python
Python爬虫包BeautifulSoup实例(三)
Jun 17 Python
python3 webp转gif格式的实现示例
Dec 10 Python
Python json读写方式和字典相互转化
Apr 18 Python
python 如何调用 dubbo 接口
Sep 24 Python
利用python和百度地图API实现数据地图标注的方法
May 13 #Python
一篇文章彻底搞懂Python中可迭代(Iterable)、迭代器(Iterator)与生成器(Generator)的概念
May 13 #Python
为什么你还不懂得怎么使用Python协程
May 13 #Python
Python玩转加密的技巧【推荐】
May 13 #Python
11个Python3字典内置方法大全与示例汇总
May 13 #Python
python中的数据结构比较
May 13 #Python
Python中函数的基本定义与调用及内置函数详解
May 13 #Python
You might like
用php解析html的实现代码
2011/08/08 PHP
php获取当前时间的毫秒数的方法
2014/01/26 PHP
php原生导出excel文件的两种方法(推荐)
2016/11/19 PHP
PHP基于自定义函数生成笛卡尔积的方法示例
2017/09/30 PHP
thinkphp5修改view到根目录实例方法
2019/07/02 PHP
Laravel框架中缓存的使用方法分析
2019/09/06 PHP
Javascript 按位取反运算符 (~)
2014/02/04 Javascript
JS模拟的Map类实现方法
2016/06/17 Javascript
浅谈javascript中关于日期和时间的基础知识
2016/07/13 Javascript
jQuery源码解读之extend()与工具方法、实例方法详解
2017/03/30 jQuery
vue2.X组件学习心得(新手必看篇)
2017/07/05 Javascript
node中使用es5/6以及支持性与性能对比
2017/08/11 Javascript
Nodejs实现文件上传的示例代码
2017/09/26 NodeJs
JS表单传值和URL编码转换
2018/03/03 Javascript
浅谈使用mpvue开发小程序需要注意和了解的知识点
2018/05/23 Javascript
利用原生JavaScript实现造日历轮子实例代码
2019/05/08 Javascript
[03:49]2016完美“圣”典风云人物:AMS专访
2016/12/06 DOTA
python web基础之加载静态文件实例
2018/03/20 Python
pandas全表查询定位某个值所在行列的方法
2018/04/12 Python
python pygame实现方向键控制小球
2019/05/17 Python
pytorch 可视化feature map的示例代码
2019/08/20 Python
Django之使用内置函数和celery发邮件的方法示例
2019/09/16 Python
tensorflow通过模型文件,使用tensorboard查看其模型图Graph方式
2020/01/23 Python
英国航空官网:British Airways
2016/09/11 全球购物
有趣的睡衣和礼物:LazyOne
2019/11/27 全球购物
英国最大的天然和有机产品在线零售商之一:Big Green Smile
2020/05/06 全球购物
网络教育自我鉴定
2013/11/01 职场文书
经典婚礼主持词
2014/03/13 职场文书
什么是就业协议书
2014/04/17 职场文书
优秀求职信
2014/05/29 职场文书
员工生日会策划方案
2014/06/14 职场文书
学雷锋活动倡议书
2014/08/30 职场文书
2014年大班保育员工作总结
2014/12/02 职场文书
民事代理词范文
2015/05/25 职场文书
三八妇女节致辞
2015/07/31 职场文书
教师廉政准则心得体会
2016/01/20 职场文书