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,按照下图操作即可


云打码的简单使用举例相关推荐

  1. 云转码express-ffmpeg 最简单易用的云转码切片管理平台

    功能介绍 云转码express-ffmpeg采用ffmpeg作为转码和切片的工具,最大限度的压缩视频文件,最快速度的切片能力,并且开源免费,提供给大家学习ffmpeg的用法. 官方网站 云转码expr ...

  2. 媒体转码切片_cVideo云转码系统

    背景 随着前端摄像机的清晰度不断提升,其码流和数据量成倍增长.然而一些终端的处理能力有限,无法支持高清的分辨率:或者需要用到公网传输,带宽无法满足高清的码流的需求等.视频转码是一个高运算负荷的过程,需 ...

  3. selenium+云打码+百度ocr爬取360的电话号码标记

      抱歉,云打码公司已经倒闭,目前还未找到能替代的云服务   写了个脚本,用于从www.so.com 上查询电话号码的标记情况,记录下号码所属公司.标记类型.标记人数(如果存在).如下图红框中的信息. ...

  4. 视频云转码源码PHP|m3u8切片程序双码率+秒切

    视频云转码源码可以从管理控制台内提升特定转码作业的优先级,以手动增加等待作业的优先级.视频云转码源码作业可以在数据中心之间进行平衡.因此,如果一个DC的转码作业队列比通常更长,则可以在源视频文件与另一 ...

  5. 七彩cms云转码_七彩CMS 2019云转码完全开源版本 程序源码带安装教程

    最近自然收到了来自站长的2019云转码完全开源版本,迫不及待安装上这款视频转码服务系统尝鲜一下.奈何这款软件并没有提供任何使用文档供我参看,只能是结合网上零散的沾边内容摸索一番.通过参考网上的同类教程 ...

  6. 七彩cms云转码_最新版七彩CMS 2019云转码完全开源版本 程序源码带安装教程

    最近逍遥网收到了来自站长的2019云转码完全开源版本,迫不及待安装上这款视频转码服务系统尝鲜一下.奈何这款软件并没有提供任何使用文档供我参看,只能是结合网上零散的沾边内容摸索一番.通过参考网上的同类教 ...

  7. android扫码 超简单零代码

    android扫码 超简单零代码 小序 背景介绍 前期准备 zxing和华为扫码服务对比 开始搬运 结语 小序 这是一篇纯新手教学,本人之前没有任何安卓开发经验(尴尬),本文也不涉及任何代码就可以使用 ...

  8. git小乌龟连接码云_码云(Gitee.com)帮助文档_V1.2

    码云Pages #### 码云 `Pages` 是一个免费的静态网页托管服务,您可以使用 码云 `Pages` 托管博客.项目官网等静态网页.如果您使用过 `Github Pages` 那么您会很快上 ...

  9. 3个情人节表白网页在线生成(附最新阿里云扩容码)

    原文地址: 3个情人节表白网页在线生成(附最新阿里云扩容码) - 方包博客 - java|python|前端开发|运维|电商|ui设计 今天就是七夕情人节了,没啥送给大家的,就送3个在线生成的表白网页 ...

  10. 云转码源码(视频云转码)双码率+秒切

    我们之前讨论过一种解决方案是利用云服务的力量对视频进行转码.虽然可以使用本地计算进行转码,但过去三年生成的大量内容--以及大部分内容是以 4K 格式获取的事实--使得云转码成为一个更具吸引力的主张(即 ...

最新文章

  1. 白盒测试方法之条件覆盖测试
  2. 理解卷积神经网络的局限
  3. asp.net采用OLEDB方式导入Excel数据时提示:未在本地计算机上注册Microsoft.Jet.OLEDB.4.0 提供程序...
  4. C++ 复数类加减法运算重载为成员函数形式
  5. sql limit子句_SQL子句解释的位置:之间,之间,类似和其他示例
  6. MySQL : MySQL如何查看操作记录
  7. Android ListView 指定显示最后一行
  8. Unity3D丨面试题目
  9. 弱电工程施工规划实施
  10. 网上交易安全-使用JAVA调用U盾进行客户认证
  11. 遥感影像识别-训练策略
  12. JAVA测试人员考核_自动化测试的绩效考核
  13. Barefoot P4加速SDN
  14. 如何用Amira分割DICOM图像
  15. 快手和抖音怎么打开微信小程序
  16. Json在线编辑和格式化工具
  17. 华科图书情报专硕考研复试与读研
  18. Carbon中文使用手册
  19. tradingview 设置移动平均线
  20. Qt的MVC设计模式——InterView框架(MVD)

热门文章

  1. A Self-paced Multiple-instance Learning Framework for Co-saliency Detection文章阅读
  2. 电脑C盘满了怎么办?电脑C盘满了怎么清理?
  3. Codeforces Gym 100015 简要题解
  4. CF1095A Repeating Cipher
  5. Quarkus 初见
  6. 我与北窗青年的2020丶
  7. DeepFake检测论文汇总
  8. 《东周列国志》第八十五回 乐羊子怒啜中山羹 西门豹乔送河伯妇
  9. 关闭 OOM killer
  10. 电脑版微信定时发送消息