云打码的简单使用举例
1.在云打码官网上下载"Python调用示例"
具体步骤如下:
2.下载完成后会发现代码中会用到appid,appkey,那么问题就来了,它们是什么?又是从哪里获得的呢?
appid:即为下图中的软件代码;appkey:即为下图中的通讯密钥.
3.利用云打码获取验证码并进行登录及验证验证码是否输入正确
大概流程:请求验证码网址(获取到验证码图片)->下载验证码到本地->获取验证码图片-->登录--->识别结果
下面附上完整代码:
#ydm.pyimport json, time, requests# 此文件是从云打码中下载的
class YDMHttp(object):apiurl = 'http://api.yundama.com/api.php'username = ''password = ''#开发者idappid = ''#开发者密钥appkey = ''def __init__(self, username, password, appid, appkey):self.username = username self.password = passwordself.appid = str(appid)self.appkey = appkeydef request(self, fields, files=[]):response = self.post_url(self.apiurl, fields, files)response = json.loads(response)return responsedef balance(self):data = {'method': 'balance', 'username': self.username, 'password': self.password, 'appid': self.appid, 'appkey': self.appkey}response = self.request(data)if (response):if (response['ret'] and response['ret'] < 0):return response['ret']else:return response['balance']else:return -9001def login(self):data = {'method': 'login', 'username': self.username, 'password': self.password, 'appid': self.appid, 'appkey': self.appkey}response = self.request(data)if (response):if (response['ret'] and response['ret'] < 0):return response['ret']else:return response['uid']else:return -9001def upload(self, filename, codetype, timeout):data = {'method': 'upload', 'username': self.username, 'password': self.password, 'appid': self.appid, 'appkey': self.appkey, 'codetype': str(codetype), 'timeout': str(timeout)}file = {'file': filename}response = self.request(data, file)if (response):if (response['ret'] and response['ret'] < 0):return response['ret']else:return response['cid']else:return -9001def result(self, cid):data = {'method': 'result', 'username': self.username, 'password': self.password, 'appid': self.appid, 'appkey': self.appkey, 'cid': str(cid)}response = self.request(data)return response and response['text'] or ''def decode(self, filename, codetype, timeout):cid = self.upload(filename, codetype, timeout)if (cid > 0):for i in range(0, timeout):result = self.result(cid)if (result != ''):return cid, resultelse:time.sleep(1)return -3003, ''else:return cid, ''def report(self, cid):data = {'method': 'report', 'username': self.username, 'password': self.password, 'appid': self.appid, 'appkey': self.appkey, 'cid': str(cid), 'flag': '0'}response = self.request(data)if (response):return response['ret']else:return -9001def post_url(self, url, fields, files=[]):for key in files:files[key] = open(files[key], 'rb');res = requests.post(url, files=files, data=fields)return res.text# 此函数是自己写的
def shibie(file_name):# 普通用户的用户名和密码username = ''password = ''# # 开发者id和密钥appid = ''appkey = ''filename = file_name# 验证码类型codetype = ''timeout = 60# 检查if (username == 'username'):print('请设置好相关参数再测试')else:yundama = YDMHttp(username, password, appid, appkey)cid, result = yundama.decode(filename, codetype, timeout);return resultif __name__ == '__main__':# 普通用户的用户名和密码username = ''password = ''# 开发者id和密钥appid = ''appkey = ''filename = 'getimage.jpg'# 验证码类型codetype = ''timeout = 60# 检查if (username == 'username'):print('请设置好相关参数再测试')else:yundama = YDMHttp(username, password, appid, appkey)cid, result = yundama.decode(filename, codetype, timeout);print('cid: %s, result: %s' % (cid, result))
#yundama.pyimport requests
from fake_useragent import UserAgent
from http.cookiejar import LWPCookieJar
from ydm import shibiesession = requests.Session()
session.cookies = LWPCookieJar(filename='ydm.txt')
# 其中参数ignore_discard=True表示即使cookies将被丢弃也把它保存下来,它还有另外一个参数igonre_expires表示当前数据覆盖(overwritten)原文件。
try:session.cookies.load('ydm.txt', ignore_discard=True, ignore_expires=True)print('本地cookie加载完成')
except Exception as e:print('')ua = UserAgent()
headers = {'headers': ua.random,
}#获取验证码图片def get_captcha_image():content = session.get('http://www.yundama.com/index/captcha', headers=headers).contentwith open('captcha.jpg', 'wb') as f:f.write(content)#登录def login():get_captcha_image()# 验证码保存到本地以后,对验证码进行识别result = shibie('captcha.jpg')print('识别结果:', result)#获取开发者登陆时请求的urlresponse = session.get('http://www.yundama.com/index/login?username='开发者账号'&password='开发者密码'&utype=1&vcode={}'.format(result))print(response.text)session.cookies.save(ignore_discard=True, ignore_expires=True)def get_index():response = session.get('http://www.yundama.com/user')print(response.text)if __name__ == '__main__':login()get_index()
那么问题来了?如何获取开发者登录时请求的url呢?
可以使用抓包工具抓取云打码登录时请求的url
4.运行yundama.pyde的结果如下
那么你如何得知结果:到底验证码输入是否正确呢?
你只需打开cmd.exe,按照下图操作即可
云打码的简单使用举例相关推荐
- 云转码express-ffmpeg 最简单易用的云转码切片管理平台
功能介绍 云转码express-ffmpeg采用ffmpeg作为转码和切片的工具,最大限度的压缩视频文件,最快速度的切片能力,并且开源免费,提供给大家学习ffmpeg的用法. 官方网站 云转码expr ...
- 媒体转码切片_cVideo云转码系统
背景 随着前端摄像机的清晰度不断提升,其码流和数据量成倍增长.然而一些终端的处理能力有限,无法支持高清的分辨率:或者需要用到公网传输,带宽无法满足高清的码流的需求等.视频转码是一个高运算负荷的过程,需 ...
- selenium+云打码+百度ocr爬取360的电话号码标记
抱歉,云打码公司已经倒闭,目前还未找到能替代的云服务 写了个脚本,用于从www.so.com 上查询电话号码的标记情况,记录下号码所属公司.标记类型.标记人数(如果存在).如下图红框中的信息. ...
- 视频云转码源码PHP|m3u8切片程序双码率+秒切
视频云转码源码可以从管理控制台内提升特定转码作业的优先级,以手动增加等待作业的优先级.视频云转码源码作业可以在数据中心之间进行平衡.因此,如果一个DC的转码作业队列比通常更长,则可以在源视频文件与另一 ...
- 七彩cms云转码_七彩CMS 2019云转码完全开源版本 程序源码带安装教程
最近自然收到了来自站长的2019云转码完全开源版本,迫不及待安装上这款视频转码服务系统尝鲜一下.奈何这款软件并没有提供任何使用文档供我参看,只能是结合网上零散的沾边内容摸索一番.通过参考网上的同类教程 ...
- 七彩cms云转码_最新版七彩CMS 2019云转码完全开源版本 程序源码带安装教程
最近逍遥网收到了来自站长的2019云转码完全开源版本,迫不及待安装上这款视频转码服务系统尝鲜一下.奈何这款软件并没有提供任何使用文档供我参看,只能是结合网上零散的沾边内容摸索一番.通过参考网上的同类教 ...
- android扫码 超简单零代码
android扫码 超简单零代码 小序 背景介绍 前期准备 zxing和华为扫码服务对比 开始搬运 结语 小序 这是一篇纯新手教学,本人之前没有任何安卓开发经验(尴尬),本文也不涉及任何代码就可以使用 ...
- git小乌龟连接码云_码云(Gitee.com)帮助文档_V1.2
码云Pages #### 码云 `Pages` 是一个免费的静态网页托管服务,您可以使用 码云 `Pages` 托管博客.项目官网等静态网页.如果您使用过 `Github Pages` 那么您会很快上 ...
- 3个情人节表白网页在线生成(附最新阿里云扩容码)
原文地址: 3个情人节表白网页在线生成(附最新阿里云扩容码) - 方包博客 - java|python|前端开发|运维|电商|ui设计 今天就是七夕情人节了,没啥送给大家的,就送3个在线生成的表白网页 ...
- 云转码源码(视频云转码)双码率+秒切
我们之前讨论过一种解决方案是利用云服务的力量对视频进行转码.虽然可以使用本地计算进行转码,但过去三年生成的大量内容--以及大部分内容是以 4K 格式获取的事实--使得云转码成为一个更具吸引力的主张(即 ...
最新文章
- 白盒测试方法之条件覆盖测试
- 理解卷积神经网络的局限
- asp.net采用OLEDB方式导入Excel数据时提示:未在本地计算机上注册Microsoft.Jet.OLEDB.4.0 提供程序...
- C++ 复数类加减法运算重载为成员函数形式
- sql limit子句_SQL子句解释的位置:之间,之间,类似和其他示例
- MySQL : MySQL如何查看操作记录
- Android ListView 指定显示最后一行
- Unity3D丨面试题目
- 弱电工程施工规划实施
- 网上交易安全-使用JAVA调用U盾进行客户认证
- 遥感影像识别-训练策略
- JAVA测试人员考核_自动化测试的绩效考核
- Barefoot P4加速SDN
- 如何用Amira分割DICOM图像
- 快手和抖音怎么打开微信小程序
- Json在线编辑和格式化工具
- 华科图书情报专硕考研复试与读研
- Carbon中文使用手册
- tradingview 设置移动平均线
- Qt的MVC设计模式——InterView框架(MVD)