热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【Python爬虫】破解按照顺序点击验证码(非自动化浏览器)

#请求到验证码base64编码json_img_datajson_raw.get(Vimage)#获取到验证码编码 #保存验证码图片到本地defbase64_to_img(bstr

# 请求到验证码base64编码

json_img_data
= json_raw.get("Vimage") # 获取到验证码编码

 

# 保存验证码图片到本地
def base64_to_img(bstr, file_path):
imgdata
= base64.b64decode(bstr)
file
= open(file_path, 'wb')
file.write(imgdata)
file.close()
# 保存验证码图片
base64_raw = json_img_data.get('img_data').replace("\\", "")
res_base64
= base64_raw.split(",")[1]
base64_to_img(res_base64,
"./demo.png")

 

 

## 使用打码平台获取到 坐标返回的X1,X2,X3, 判断按照顺序的大小排序
# 破解验证码
chaojiying = CodeBeat('USERNAME', 'PASSWORD', '96001')
im
= open("./demo.png", 'rb').read()
code_json
= chaojiying.PostPic(im, 9103)
if code_json.get('err_no') == 0:
code
= code_json.get('pic_str') # 获取验证码坐标
    # 根据返回X1,X2,X3进行判断索引大小 每个KEY都会绑定对应的值
    # 这里是正确顺序的排序值:['UDFaT3hLdHJnSWttVU5SRFprTVBidz09Ojo4Pwj2dvDQhaPmgYVfumhA', 'SW5lMHVjaUxHVjZhcmRLMGRKeDFxdz09OjorPeYEpqwTUYfr9Ds/IkB6', 'TXIvSUxiOFR2Um0yVXhtcDZLYVBSdz09Ojq4jiV9X6StjGFsZXretbRR']
    # 这里需要注意的是,每次的请求参数回来 都会带上 "\" 这种符号是转义符号,需要通过代码处理掉的, replace("\\","")
    # 对方需求的数据格式为: 三个相同的KEY 按照你点击的顺序 提交到后端进行判断验证码
    

   # 因为传统字典里面的KEY相同就会覆盖值,所以这里需要用到列表来充当存放值

    datas = { "p": "get_verification", "login_layer": "su", # 使用形式 ver_result[]: [v1,v2,v3] "ver_result[]": [img_list[sort_list[0]],img_list[sort_list[1]],img_list[sort_list[2]]], # img_list是原验证码排序, sort_list是经过判断坐标后返回的正确的索引顺序 "action":"ver_checkresult", }

    page = session.post(url=url,data=datas)

 

主攻:Python 数据分析 web 机器学习 图像识别。。

副攻:JAVA WEB 安卓 大数据



推荐阅读
author-avatar
逢源堂_344
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有