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中的死锁、可重入锁和互斥锁
Nov 05 Python
Windows下搭建python开发环境详细步骤
Jul 20 Python
浅谈编码,解码,乱码的问题
Dec 30 Python
Python生成8位随机字符串的方法分析
Dec 05 Python
python3 面向对象__类的内置属性与方法的实例代码
Nov 09 Python
python中强大的format函数实例详解
Dec 05 Python
Python3和PyCharm安装与环境配置【图文教程】
Feb 14 Python
Ubuntu配置Pytorch on Graph (PoG)环境过程图解
Nov 19 Python
Django通过设置CORS解决跨域问题
Nov 26 Python
python爬虫beautifulsoup解析html方法
Dec 07 Python
python opencv图像处理(素描、怀旧、光照、流年、滤镜 原理及实现)
Dec 10 Python
python 使用Tensorflow训练BP神经网络实现鸢尾花分类
May 12 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中unserialize返回false的解决方法
2014/09/22 PHP
详解PHP归并排序的实现
2016/10/18 PHP
选择TreeView控件的树状数据节点的JS方法(jquery)
2010/02/06 Javascript
jQuery News Ticker 基于jQuery的即时新闻行情展示插件
2011/11/05 Javascript
jQuery 全选/反选以及单击行改变背景色实例
2013/07/02 Javascript
完美解决AJAX跨域问题
2013/11/01 Javascript
js动画效果制件让图片组成动画代码分享
2014/01/14 Javascript
浅析JS中document对象的一些重要属性
2014/03/06 Javascript
jQuery trigger()方法用法介绍
2015/01/13 Javascript
Javascript blur与click冲突解决办法
2017/01/09 Javascript
拖动时防止选中
2017/02/03 Javascript
浅谈react.js中实现tab吸顶效果的问题
2017/09/06 Javascript
Vue中this.$router.push参数获取方法
2018/02/27 Javascript
Node.js中的cluster模块深入解读
2018/06/11 Javascript
在vue中更换字体,本地存储字体非引用在线字体库的方法
2018/09/28 Javascript
vue element-ui实现动态面包屑导航
2019/12/23 Javascript
JavaScript setInterval()与setTimeout()计时器
2019/12/27 Javascript
JavaScript闭包原理与用法学习笔记
2020/05/29 Javascript
[56:17]NB vs Infamous 2019国际邀请赛淘汰赛 败者组 BO3 第三场 8.22
2019/09/05 DOTA
Python 模拟购物车的实例讲解
2017/09/11 Python
用Python删除本地目录下某一时间点之前创建的所有文件的实例
2017/12/14 Python
python numpy 显示图像阵列的实例
2018/07/02 Python
查找python项目依赖并生成requirements.txt的方法
2018/07/10 Python
如何使用python操作vmware
2019/07/27 Python
Python实现隐马尔可夫模型的前向后向算法的示例代码
2019/12/31 Python
tensorflow多维张量计算实例
2020/02/11 Python
浅析Python模块之间的相互引用问题
2021/02/26 Python
HTML5视频播放插件 video.js介绍
2018/09/29 HTML / CSS
英国珠宝钟表和家居礼品精品店:David Shuttle
2018/02/24 全球购物
银行柜员应聘推荐信范文
2013/11/24 职场文书
中学教师请假制度
2014/02/03 职场文书
企业厂务公开实施方案
2014/03/26 职场文书
毕业生工作求职信
2014/06/30 职场文书
课前一分钟演讲稿
2014/08/26 职场文书
python3中apply函数和lambda函数的使用详解
2022/02/28 Python
Win11无法安装更新补丁KB3045316怎么办 附KB3045316补丁修复教程
2022/08/14 数码科技