python复杂的验证码处理(Python 通过打码平台实现验证码的实现)
类别:脚本大全 浏览量:1350
时间:2021-10-02 01:44:32 python复杂的验证码处理
Python 通过打码平台实现验证码的实现在爬虫时,经常遇到登录需要验证码的情况,简单的验证码可以自己解决,复制的验证码需要借助机器学习,有一定的难度。还有一个简单的方案就是采用付费的打码平台。
比如r若快(http://www.ruokuai.com/client),还有云打码平台(http://www.yundama.com/price.html)
下面以r若快为例介绍打码平台的思路:
r若快平台需要注册两个用户,一个是普通用户,一个开发者用户,
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" alt="python复杂的验证码处理(Python 通过打码平台实现验证码的实现)" border="0" /> 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.jpg" alt="python复杂的验证码处理(Python 通过打码平台实现验证码的实现)" border="0" /> 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.jpg" alt="python复杂的验证码处理(Python 通过打码平台实现验证码的实现)" border="0" /> # result = rc.rk_create(im, 1030) # print(result['result']) |
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持开心学习网。
原文链接:https://www.cnblogs.com/shaosks/p/9816106.html
您可能感兴趣
- python程序开发过程(python调用外部程序的实操步骤)
- python连接到本地的mysql数据库(Python实现连接MySql数据库及增删改查操作详解)
- python3.7标准库官方手册(Python3.7 dataclass使用指南小结)
- python将一个字符串逆序输出(Python字符串逆序的实现方法一题多解)
- python基础教程常用函数整理(Python基础之函数的定义与使用示例)
- python中random库的用法(Python minidom模块用法示例DOM写入和解析XML)
- python用指针合并两个有序数组(Python3实现计算两个数组的交集算法示例)
- python出现modify怎么办(解决Python找不到ssl模块问题 No module named _ssl的方法)
- python自动解密(python实现移位加密和解密)
- python时间序列模式识别(Python时间序列处理之ARIMA模型的使用讲解)
- 如何使用python定时运行(Python实现定时执行任务的三种方式简单示例)
- python的静态方法和类方法(深入解析python中的实例方法、类方法和静态方法)
- python线程池有几种(对python 多线程中的守护线程与join的用法详解)
- python对于gbk处理(Python 2/3下处理cjk编码的zip文件的方法)
- pycharm怎么创建django项目(Python、 Pycharm、Django安装详细教程图文)
- python多线程和多进程应用场景(Python多线程处理实例详解单进程/多进程)
- 文明6金币太少怎么办 文明6无限刷钱教程(文明6金币太少怎么办)
- 开国中将,王牌军63军首任政委,两个连襟一个上将一个少将传为佳话(王牌军63军首任政委)
- 臭名昭著的731部队最高负责人 石井四郎(臭名昭著的731部队最高负责人)
- 王牌部队,你看的剧情我看的时尚(你看的剧情我看的时尚)
- 被鉴定的古董价值300万 当心,你可能遇到诈骗了(被鉴定的古董价值300万)
- 英语难学吗(初中英语难学吗)
热门推荐
- css 图片边缘虚化(CSS3对图片照片进行边缘模糊处理的实现)
- redis新增数据分页(Scrapy-Redis结合POST请求获取数据的方法示例)
- 个人对云服务器ecs的理解(ecs云服务器怎么搭建网站)
- docker显示出错应用图标怎么处理(docker 命令报异常permission denied的解决方案)
- python中字典的值怎么应用(对python中字典keys,values,items的使用详解)
- python入门知识点总结(深入解析Python小白学习操作列表)
- webpack源码解析(80行代码写一个Webpack插件并发布到npm)
- nginx文件夹限制ip访问(基于Nginx实现限制某IP短时间访问次数)
- mysql索引b+树和b树(MySQL使用B+Tree当索引的优势有哪些)
- css的五种基本选择器(CSS兼容问题之HACK技术)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9