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 相关文章推荐
分享15个最受欢迎的Python开源框架
Jul 13 Python
Python操作CouchDB数据库简单示例
Mar 10 Python
Windows系统下使用flup搭建Nginx和Python环境的方法
Dec 25 Python
Python迭代和迭代器详解
Nov 10 Python
python psutil库安装教程
Mar 19 Python
TensorFlow实现卷积神经网络
May 24 Python
python实现简单日期工具类
Apr 24 Python
在PyCharm的 Terminal(终端)切换Python版本的方法
Aug 02 Python
Python 中的 global 标识对变量作用域的影响
Aug 12 Python
python DataFrame转dict字典过程详解
Dec 26 Python
详解字符串在Python内部是如何省内存的
Feb 03 Python
python中的 zip函数详解及用法举例
Feb 16 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面向对象全攻略 (十七) 自动加载类
2009/09/30 PHP
PHP中使用unset销毁变量并内存释放问题
2012/07/05 PHP
PHP5权威编程阅读学习笔记 附电子书下载
2012/07/05 PHP
PHP中file_exists与is_file,is_dir的区别介绍
2012/09/12 PHP
php使用MySQL保存session会话的方法
2015/06/26 PHP
PHP观察者模式原理与简单实现方法示例
2017/08/25 PHP
php+ajax实现商品对比功能示例
2019/04/13 PHP
php封装的pdo数据库操作工具类与用法示例
2019/05/08 PHP
使用JSLint提高JS代码质量方法分享
2013/12/16 Javascript
JS+CSS实现Div弹出窗口同时背景变暗的方法
2015/03/04 Javascript
使用JS读取XML文件的方法
2016/11/25 Javascript
JS实现的DIV块来回滚动效果示例
2017/02/07 Javascript
用JavaScript做简易的购物车的代码示例
2017/10/20 Javascript
vue 多入口文件搭建 vue多页面搭建的实例讲解
2018/03/12 Javascript
bootstrap中的导航条实例代码详解
2019/05/20 Javascript
Node爬取大批量文件的方法示例
2019/06/28 Javascript
vuex中遇到的坑,vuex数据改变,组件中页面不渲染操作
2020/11/16 Javascript
[01:56]无止竞 再出发——中国军团出征2017年DOTA2国际邀请赛
2017/07/05 DOTA
Python下使用Psyco模块优化运行速度
2015/04/05 Python
对python的输出和输出格式详解
2018/12/08 Python
python实现电子书翻页小程序
2019/07/23 Python
学习Django知识点分享
2019/09/11 Python
Transpose 数组行列转置的限制方式
2020/02/11 Python
python飞机大战游戏实例讲解
2020/12/04 Python
python实现PolynomialFeatures多项式的方法
2021/01/06 Python
详解canvas绘制网络字体几种方法
2019/08/27 HTML / CSS
澳大利亚游乐场设备品牌:Lifespan Kids
2019/05/24 全球购物
经济学博士求职自荐信范文
2013/11/23 职场文书
人事档案接收函
2014/01/12 职场文书
党的群众路线个人对照检查材料
2014/09/23 职场文书
就业意向协议书
2015/01/29 职场文书
初中地理教学反思
2016/02/19 职场文书
MySQL多表查询机制
2022/03/17 MySQL
第四次工业革命,打工人与机器人的竞争
2022/04/21 数码科技
Android开发实现极为简单的QQ登录页面
2022/04/24 Java/Android
nginx代理实现静态资源访问的示例代码
2022/07/07 Servers