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字符遍历的艺术
Sep 06 Python
Python 字符串操作方法大全
Mar 11 Python
分析Python编程时利用wxPython来支持多线程的方法
Apr 07 Python
在Python程序中操作文件之isatty()方法的使用教程
May 24 Python
python分布式环境下的限流器的示例
Oct 26 Python
python去掉空白行的多种实现代码
Mar 19 Python
python里dict变成list实例方法
Jun 26 Python
Selenium+Python 自动化操控登录界面实例(有简单验证码图片校验)
Jun 28 Python
Python调用.NET库的方法步骤
Dec 27 Python
python 多线程死锁问题的解决方案
Aug 25 Python
Python Pandas pandas.read_sql函数实例用法
Jun 21 Python
Python pandas求方差和标准差的方法实例
Aug 04 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批量上传的实现代码
2013/06/09 PHP
微信利用PHP创建自定义菜单的方法
2016/08/01 PHP
Laravel 自定命令以及生成文件的例子
2019/10/23 PHP
解读IE和firefox下JScript和HREF的执行顺序
2008/01/12 Javascript
javascript 检测浏览器类型和版本的代码
2009/09/15 Javascript
javascript学习笔记(五)正则表达式
2011/04/08 Javascript
jquery获取子节点和父节点的示例代码
2013/09/10 Javascript
js比较日期大小的方法
2015/05/12 Javascript
JavaScript中getUTCSeconds()方法的使用详解
2015/06/11 Javascript
javascript实现类似百度分享功能的方法
2015/07/27 Javascript
JavaScript多并发问题如何处理
2015/10/28 Javascript
jquery实现图片放大镜功能
2015/11/23 Javascript
Django+Vue.js搭建前后端分离项目的示例
2017/08/07 Javascript
Vue filter介绍及其使用详解
2017/10/21 Javascript
详解webpack之scss和postcss-loader的配置
2018/01/09 Javascript
解决bootstrap中下拉菜单点击后不关闭的问题
2018/08/10 Javascript
ES6入门教程之变量的解构赋值详解
2019/04/13 Javascript
layui select 禁止点击的实现方法
2019/09/05 Javascript
js实现炫酷光感效果
2020/09/05 Javascript
在python中的socket模块使用代理实例
2014/05/29 Python
python使用BeautifulSoup分析网页信息的方法
2015/04/04 Python
Python迭代和迭代器详解
2016/11/10 Python
Python 数据可视化pyecharts的使用详解
2019/06/26 Python
centos7中安装python3.6.4的教程
2019/12/11 Python
keras中的backend.clip用法
2020/05/22 Python
html5构建触屏网站之touch事件介绍
2013/01/07 HTML / CSS
Bealls Florida百货商店:生活服饰、家居装饰和鞋子
2018/02/23 全球购物
教职工代表大会主持词
2014/04/01 职场文书
遗嘱继承公证书
2014/04/09 职场文书
英语故事演讲稿
2014/04/29 职场文书
文体活动总结
2015/02/04 职场文书
民间借贷纠纷案件代理词
2015/05/26 职场文书
2015年度女工工作总结
2015/10/22 职场文书
大学校园餐饮创业计划书
2019/08/07 职场文书
python自动计算图像数据集的RGB均值
2021/06/18 Python
《废话连篇——致新手》——chinapizza
2022/04/05 无线电