联众打码平台接口调用(初版)

由于工作需要在使用某网站是需要验证码登录,所以选择了打码平台(当然如果有条件,可以使用机器学习),在这里我选择的是联众打码,在联众官网上其实有接口文档(PDF),所以自己写一个初版供自己使用

文件位置

  • 文件名:lianzhong_code.py
  • 配置文件:LZsetting.json
  • 图片:目前版本只支持 base64加密图片,从网站返回链接截取获得,没试过直接上传图片

接口说明

"""
LZsetting.json这里是个人软件配置信息{"msg": "软件配置信息和用户信息","ID": "用户软件ID","Secret": "用户软件Secret","UserName": "用户账号","PassWord": "用户密码","OkoooUser": "Okooo账号","OkoooPassWord": "Okooo密码"}lianzhong_code.pyverify_code:识别验证码借口参数:captchaData:验证码参数 base64图片,直接从网站返回链接提取出目前只支持 /9j/4AAQSkZJRgABAQAAAQABAAD//gA7......YUUUUAFFFFAH//ZcaptchaType: 验证码类型{"code":0,"data":"58F4K","id":"20190214:000000000025750641035","msg":"","text":"当code不为0时,使用id返回调用error_code申请错误!"}error_code: 验证码识别错误, 申请返回点数参数:captchaId:识别验证码,网站返回IDcheck_lianzhong:检查当前用户的剩余点数以及可用点数{"code":0,"user_points":998,"available_points":998,"lock_points":0,"msg":"user_points:用户总点数, available_points:可用点数, lock_points:锁定点数"}"""

文件源码

接口源码:lianzhong_code.py

# coding: utf-8
"""
LZsetting.json这里是个人软件配置信息{"msg": "软件配置信息和用户信息","ID": "用户软件ID","Secret": "用户软件Secret","UserName": "用户账号","PassWord": "用户密码"}使用说明:verify_code:识别验证码借口参数:captchaData:验证码参数目前只支持 /9j/4AAQSkZJRgABAQAAAQABAAD//gA7......YUUUUAFFFFAH//ZcaptchaType: 验证码类型{"code":0,"data":"58F4K","id":"20190214:000000000025750641035","msg":"","text":"当code不为0时,使用id返回调用error_code申请错误!"}error_code: 验证码识别错误, 申请返回点数参数:captchaId:识别验证码,网站返回IDcheck_lianzhong:检查当前用户的剩余点数以及可用点数{"code":0,"user_points":998,"available_points":998,"lock_points":0,"msg":"user_points:用户总点数, available_points:可用点数, lock_points:锁定点数"}"""import json
import requests
from requests.exceptions import Timeout
from useragent import randomUA, UA_TYPE_DESKTOPclass VerifyCode:def __init__(self):self.session = requests.session()self.session.headers['User-Agent'] = randomUA(UA_TYPE_DESKTOP)self.session.verify = Falseself.session.headers.update({'Host': 'v2-api.jsdama.com','Connection': 'keep-alive','Accept': 'application/json, text/javascript, */*; q=0.01','Content-Type': 'text/json'})# 读取配置信息with open('LZsetting.json', 'r', encoding='utf-8') as f:s = f.read()setting = json.loads(s)self.id = setting['ID']self.secret = setting['Secret']self.user = setting['UserName']self.pwd = setting['PassWord']def verify_code(self, captchaData, captchaType):"""验证验证码信息:return:"""url = 'https://v2-api.jsdama.com/upload'data = {'softwareId': self.id,'softwareSecret': self.secret,'username': self.user,'password': self.pwd,'captchaData': captchaData,'captchaType': captchaType,'captchaMinLength': 0,'captchaMaxLength': 0,'workerTiosId': 0,}try:res = self.session.post(url=url, data=json.dumps(data), timeout=5)res_data = json.loads(res.text)print(res_data)code = res_data['code']data = res_data['data']['recognition']id = res_data['data']['captchaId']msg = res_data['message']except Timeout:code = 400data = ''id = idmsg = '连接超时,检查网络重新请求,无需申请错误'text = '当code不为0时,使用id返回调用error_code申请错误!'return json.dumps({'code': code,'data': data,'id': id,'msg': msg,'text': text})def error_code(self, captchaId):"""申请错误,返回点数,减少支出:param id::return:"""url = 'https://v2-api.jsdama.com/report-error'data = {'softwareId': self.id,'softwareSecret': self.secret,'username': self.user,'password': self.pwd,'captchaId': captchaId}try:res = self.session.post(url=url, data=json.dumps(data), timeout=5)result = res.textexcept Timeout:result = json.dumps({'code': 400, 'msg': '连接超时'})return resultdef check_lianzhong(self):"""检查当前账户剩余点数:return:"""url = 'https://v2-api.jsdama.com/check-points'data = {'softwareId': self.id,'softwareSecret': self.secret,'username': self.user,'password': self.pwd,}try:res = self.session.post(url=url, data=json.dumps(data), timeout=5)print(res.text)response = json.loads(res.text)code = response['code']msg = response['message']if not code == 0:result = {'code': code, 'msg': msg}else:available_points = response['data']['availablePoints']user_points = response['data']['userPoints']lock_points = response['data']['lockPoints']result = {'code': code,'user_points': user_points,'available_points': available_points,'lock_points': lock_points,'msg': 'user_points:用户总点数, available_points:可用点数, lock_points:锁定点数'}except Timeout:result = {'code': 400, 'msg': '请求连接超时'}return json.dumps(result)def download_img(self):passif __name__ == '__main__':v = VerifyCode()# captchaData = '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'# captchaType = '1038'# print(v.verify_code(captchaData=captchaData, captchaType=captchaType))# id = '20190214:000000000025751528630'# print(v.error_code(captchaId=id))print(v.check_lianzhong())

配置文件:LZsetting.json
需要先去联众官网配置软件

{
"msg": "软件配置信息和用户信息",
"ID": "软件ID",
"Secret": "软件配置后分配的Secret",
"UserName": "官网注册用户名",
"PassWord": "用户密码",
"O...User": "登录网站用户名(省略名称)",
"O...PassWord": "登录网站密码"
}

联众打码平台接口调用(初版)相关推荐

  1. 国际短信平台接口调用的方法步骤,简单5步快速教程

    如果您需要使用国际短信平台来满足您的业务需求,那么您需要了解短信平台接口调用的方法步骤. 接口调用是指您的应用程序通过网络接口与短信平台进行通信,从而实现向全世界发送短信的功能. 下面是国际短信平台接 ...

  2. 联通一信通短信平台接口调用

    联通一信通短信平台接口调用 起承转 准备工作 主要调用功能 发送短信 接收回复短信 起承转 业务需要调用联通一信通短信接口. 准备工作 调用接口前需要一系列准备工作,步骤如下: 企业账户相关信息,你需 ...

  3. 云极知客开放平台接口调用方法(C#)

    云极知客为企业提供基于SAAS的智能问答服务.支持企业个性化知识库的快速导入,借助语义模型的理解和分析,使企业客户立即就拥有本行业的24小时客服小专家.其SAAS模式实现零成本投入下的实时客服数据的可 ...

  4. 语音验证码接收平台接口调用文档

    语音验证码接收平台接口,通过手机接听验证码实现验证功能. 接口名称:语音验证码接收平台接口 接口平台:api接口 接口地址:http://op.juhe.cn/yuntongxun/voice 支持格 ...

  5. mysql调用短信接口_短信平台接口调用方法参考

    http请求: $urlsend="http://xxx.com/api/MsgSend.asmx/sendMes"; $token=array("userCode&qu ...

  6. auto.js对接联众的一个实例

    免责声明 本文所有教程及源码.软件仅为技术研究.不涉及计算机信息系统功能的删除.修改.增加.干扰,更不会影响计算机信息系统的正常运行.不得将代码用于非法用途. // 此代码为本博客整理提供 /*** ...

  7. 微信公众平台接口开发基础

    微信接口开发的要点:公众号(订阅号.服务号).微信公众号提供的对应接口限制等.微信平台开发几乎涵盖了各行各业,小程序也让微信着实火了一把,时代在不断地发展,开发也在不断地切换自己的思维和平台.俗话说, ...

  8. autojs联众识图

    牙叔教程 简单易懂 联众识图简介 联众识图平台,仅做图像辅助识别,不做破解,不做批量登录,不盗取信息,不主动进入其他计算机系统,不做恶意软件的帮助者.上传的图片,是为了解决计算机批量识别问题,如OCR ...

  9. 微信公众平台开发4-长链接转短链接口调用实例(含源码)

    微信公众平台开发-access_token获取及应用(含源码) 作者: 孟祥磊-<微信公众平台开发实例教程> 将一条长链接转成短链接.开发者用于生成二维码的原链接(商品.支付二维码等)太长 ...

  10. 通过python的requests库和socks代理调用接口API(接码平台)

    1.找到合适的接码平台 2.打开其平台API 3.查看其请求参数 代码 import requests import socket import socks socks.set_default_pro ...

最新文章

  1. Eclipse的正确安装使用姿势
  2. 项目开发之git配置
  3. 对java面试文章的技术漫谈的C#技术理解
  4. linux下挂载和卸载的命令的用法:mount 、umount
  5. poi方式写入数据到Excel
  6. 实战:网店活动付邮试用全攻略
  7. docker 查看容器_Docker介绍
  8. Nand Flash Yaffs系统大量写入数据失败问题的解决方法。
  9. 【自爆系列】如何从整体上削弱一支队伍的技术水平
  10. 财务人毕业三年薪资翻了三倍,学会数据分析竟然这么吃香
  11. MyEclipse查看.class文件
  12. Visio绘制电路图
  13. java实现将汉字转为拼音并包含音调
  14. 翻译连载 | JavaScript轻量级函数式编程-第 8 章:列表操作 |《你不知道的JS》姊妹篇...
  15. 舰r最新服务器,战舰少女R官方网站—战舰少女-与心爱的舰娘一起守护这片海域...
  16. 图形图像基础 之 png介绍
  17. 中国修边压力机行业市场供需与战略研究报告
  18. 华南农业大学C语言程序设计(实验五)
  19. 远程桌面 域计算机,在AD中实现仅普通域用户可通过远程桌面控制自身计算机
  20. SQL注入一句话木马(load_file/out file)

热门文章

  1. linux下安装yum步骤
  2. 微信小程序icon图标使用详解
  3. 【Clover】服务器环境中通过Clover boot引导黑群晖DSM(Linux)+Win系统的解决方案与常见bug排查
  4. Java速成:Boot入门
  5. 使用SQL替换指定字符串
  6. 优秀的项目经理都会用这60个项目管理工具模板,可直接编辑套用
  7. ITIL4考试练习题
  8. Cmder美化WSL Ubuntu
  9. 数据挖掘关联规则挖掘之FpGrowth算法
  10. 厉害了,盘点那些改变世界的代码!