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实现的守护进程(Daemon)用法实例
Jun 02 Python
利用Python中的pandas库对cdn日志进行分析详解
Mar 07 Python
python 3.6 +pyMysql 操作mysql数据库(实例讲解)
Dec 20 Python
Python3爬虫教程之利用Python实现发送天气预报邮件
Dec 16 Python
python通过paramiko复制远程文件及文件目录到本地
Apr 30 Python
python之pexpect实现自动交互的例子
Jul 25 Python
python多线程实现代码(模拟银行服务操作流程)
Jan 13 Python
pytorch-RNN进行回归曲线预测方式
Jan 14 Python
Python使用enumerate获取迭代元素下标
Feb 03 Python
python利用递归方法实现求集合的幂集
Sep 07 Python
Python特殊属性property原理及使用方法解析
Oct 09 Python
Python爬虫设置Cookie解决网站拦截并爬取蚂蚁短租的问题
Feb 22 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/05/07 PHP
基于jQueryUI和Corethink实现百度的搜索提示功能
2016/11/09 PHP
PHP小白必须要知道的php基础知识(超实用)
2017/10/10 PHP
用显卡加速,轻松把笔记本打造成取暖器的办法!
2013/04/17 Javascript
各浏览器对document.getElementById等方法的实现差异解析
2013/12/05 Javascript
使用jQuery.wechat构建微信WEB应用
2014/10/09 Javascript
jQuery实现固定在网页顶部的菜单效果代码
2015/09/02 Javascript
Jquery效果大全之制作电脑健康体检得分特效附源码下载
2015/11/02 Javascript
JS中闭包的经典用法小结(2则示例)
2016/12/28 Javascript
angular4中*ngFor不能对返回来的对象进行循环的解决方法
2018/09/12 Javascript
vue的过滤器filter实例详解
2018/09/17 Javascript
angular 未登录状态拦截路由跳转的方法
2018/10/09 Javascript
VSCode使用之Vue工程配置eslint
2019/04/30 Javascript
layUI实现前端分页和后端分页
2019/07/27 Javascript
JavaScript设计模式之门面模式原理与实现方法分析
2020/03/09 Javascript
解决React在安装antd之后出现的Can't resolve './locale'问题(推荐)
2020/05/03 Javascript
[01:14]DOTA2亚洲邀请赛 ShowOpen
2015/02/07 DOTA
[01:32:50]DOTA2-DPC中国联赛 正赛 DLG vs XG BO3 第一场 1月25日
2021/03/11 DOTA
Python Mysql数据库操作 Perl操作Mysql数据库
2009/01/12 Python
跟老齐学Python之私有函数和专有方法
2014/10/24 Python
Centos下实现安装Python3.6和Python2共存
2018/08/15 Python
在python里面运用多继承方法详解
2019/07/01 Python
详解基于python的多张不同宽高图片拼接成大图
2019/09/26 Python
python pandas.DataFrame.loc函数使用详解
2020/03/26 Python
ipython jupyter notebook中显示图像和数学公式实例
2020/04/15 Python
python3.5的包存放的具体路径
2020/08/16 Python
python语言实现贪吃蛇游戏
2020/11/13 Python
Pandas中两个dataframe的交集和差集的示例代码
2020/12/13 Python
50个强大璀璨的CSS3/JS技术运用实例
2010/02/27 HTML / CSS
美国婚礼装饰和活动用品批发供应商:Event Decor Direct
2018/10/12 全球购物
《美丽的小兴安岭》教学反思
2014/02/26 职场文书
2014离婚协议书范文两篇
2014/09/15 职场文书
节约用电倡议书
2015/04/28 职场文书
雨雪天气温馨提示
2015/07/15 职场文书
区域销售大会开幕词
2016/03/04 职场文书
三好学生竞选稿范文
2019/08/21 职场文书