作者:逢源堂_344 | 来源:互联网 | 2023-10-17 11:36
#请求到验证码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 安卓 大数据