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中使用中文的方法
Feb 19 Python
python实现批量获取指定文件夹下的所有文件的厂商信息
Sep 28 Python
numpy.linspace 生成等差数组的方法
Jul 02 Python
selenium+python截图不成功的解决方法
Jan 30 Python
python实现切割url得到域名、协议、主机名等各个字段的例子
Jul 25 Python
浅谈Python3 numpy.ptp()最大值与最小值的差
Aug 24 Python
Python3 xml.etree.ElementTree支持的XPath语法详解
Mar 06 Python
opencv-python的RGB与BGR互转方式
Jun 02 Python
python语言是免费还是收费的?
Jun 15 Python
Python3中的tuple函数知识点讲解
Jan 03 Python
python爬取2021猫眼票房字体加密实例
Feb 19 Python
Python matplotlib多个子图绘制整合
Apr 13 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程序中的常见漏洞进行攻击
2006/10/09 PHP
PHP利用func_get_args和func_num_args函数实现函数重载实例
2014/11/12 PHP
php中的动态调用实例分析
2015/01/07 PHP
CodeIgniter实现从网站抓取图片并自动下载到文件夹里的方法
2015/06/17 PHP
深入理解PHP中的Streams工具
2015/07/03 PHP
Yii中Model(模型)的创建及使用方法
2015/12/28 PHP
thinkphp5 migrate数据库迁移工具
2018/02/20 PHP
Mootools 1.2教程 排序类和方法简介
2009/09/15 Javascript
Web 前端设计模式--Dom重构 提高显示性能
2010/10/22 Javascript
基于JQuery的浮动DIV显示提示信息并自动隐藏
2011/02/11 Javascript
jquery拖动插件(jquery.drag)使用介绍
2013/06/18 Javascript
js清除input中type等于file的值域(示例代码)
2013/12/24 Javascript
jquery中的on方法使用介绍
2013/12/29 Javascript
javascript实现修改微信分享的标题内容等
2014/12/11 Javascript
自定义函数实现IE7与IE8不兼容js中trim函数的问题
2015/02/03 Javascript
关于JSON.parse(),JSON.stringify(),jQuery.parseJSON()的用法
2016/06/30 Javascript
jQuery实用密码强度检测
2017/03/02 Javascript
layui关闭层级、简单监听的实例
2019/09/06 Javascript
js获取本日、本周、本月的时间代码
2020/02/01 Javascript
js实现弹幕飞机效果
2020/08/27 Javascript
[06:04]DOTA2国际邀请赛纪录片:Just For LGD
2013/08/11 DOTA
python实现telnet客户端的方法
2015/04/15 Python
PHP网页抓取之抓取百度贴吧邮箱数据代码分享
2016/04/13 Python
详解python中的time和datetime的常用方法
2019/07/08 Python
Python绘图实现显示中文
2019/12/04 Python
TensorFLow 不同大小图片的TFrecords存取实例
2020/01/20 Python
Python图像处理二值化方法实例汇总
2020/07/24 Python
CSS3+Sprite实现僵尸行走动画特效源码
2016/01/27 HTML / CSS
Otticanet英国:最顶尖的世界名牌眼镜, 能得到打折季的价格
2019/02/10 全球购物
意大利一家专营包包和配饰的网上商店:Borse Last Minute
2019/08/26 全球购物
介绍一下如何利用路径遍历进行攻击及如何防范
2014/01/19 面试题
计算机专业自我鉴定
2013/10/15 职场文书
爱祖国爱家乡演讲稿
2014/09/02 职场文书
致创业您:正能量激励人心句子(48条)
2019/08/15 职场文书
python中字符串String及其常见操作指南(方法、函数)
2022/04/06 Python
MySQL数据库优化之通过索引解决SQL性能问题
2022/04/10 MySQL