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标准库之循环器(itertools)介绍
Nov 25 Python
python获取当前用户的主目录路径方法(推荐)
Jan 12 Python
Django基础之Model操作步骤(介绍)
May 27 Python
浅谈python函数调用返回两个或多个变量的方法
Jan 23 Python
快速解决vue.js 模板和jinja 模板冲突的问题
Jul 26 Python
Django自定义全局403、404、500错误页面的示例代码
Mar 08 Python
Python matplotlib可视化实例解析
Jun 01 Python
基于OpenCV的网络实时视频流传输的实现
Nov 15 Python
python源文件的字符编码知识点详解
Mar 04 Python
Python实现抖音热搜定时爬取功能
Mar 16 Python
Python&Matlab实现灰狼优化算法的示例代码
Mar 21 Python
Python经常使用的一些内置函数
Apr 11 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 学习路线与时间表
2010/02/21 PHP
PHP输出缓存ob系列函数详解
2014/03/11 PHP
php基于session实现数据库交互的类实例
2015/08/03 PHP
php实现购物车功能(上)
2020/07/23 PHP
php实现生成带二维码图片并强制下载功能
2018/02/24 PHP
Yii框架的redis命令使用方法简单示例
2019/10/15 PHP
PHP Swoole异步MySQL客户端实现方法示例
2019/10/24 PHP
用函数式编程技术编写优美的 JavaScript_ibm
2008/05/16 Javascript
javascript XMLHttpRequest对象全面剖析
2010/04/24 Javascript
用JQuery实现表格隔行变色和突出显示当前行的代码
2012/02/10 Javascript
JavaScript位置与大小(1)之正确理解和运用与尺寸大小相关的DOM属性
2015/12/26 Javascript
JS实现获取来自百度,Google,soso,sogou关键词的方法
2016/12/21 Javascript
react-router实现跳转传值的方法示例
2017/05/27 Javascript
JavaScrpt中如何使用 cookie 设置查看与删除功能
2017/07/09 Javascript
基于layui数据表格以及传数据的方式
2018/08/19 Javascript
使用NestJS开发Node.js应用的方法
2018/12/03 Javascript
JavaScript解析及序列化JSON的方法实例分析
2019/01/04 Javascript
小程序实现自定义导航栏适配完美版
2019/04/02 Javascript
javascript网页随机点名实现过程解析
2019/10/15 Javascript
[01:25]DOTA2超级联赛专访iG 将调整状态找回自己
2013/06/05 DOTA
python命令行参数解析OptionParser类用法实例
2014/10/09 Python
python使用锁访问共享变量实例解析
2018/02/08 Python
python实现最大子序和(分治+动态规划)
2019/07/05 Python
Django项目uwsgi+Nginx保姆级部署教程实现
2020/04/19 Python
css3实现超立体3D图片侧翻倾斜效果
2014/04/16 HTML / CSS
激光脱毛、蓝光和护肤:Tria Beauty
2019/03/28 全球购物
大学生学习自我评价
2014/01/13 职场文书
酒店总经理助理岗位职责
2014/02/01 职场文书
《北京的春节》教学反思
2014/04/07 职场文书
离婚协议书范本2014
2014/10/27 职场文书
毕业实习证明(4篇)
2014/10/28 职场文书
大学生读书笔记大全
2015/07/01 职场文书
2015年依法治校工作总结
2015/07/27 职场文书
原生JS封装vue Tab切换效果
2021/04/28 Vue.js
Win11如何设置右键单击显示所有选项?Win11右键单击显示所有选项设置教程
2022/04/08 数码科技
Golang解析JSON对象
2022/04/30 Golang