【Python 爬虫】破解按照顺序点击验证码(非自动化浏览器)
# 请求到验证码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相同就会覆盖值,所以这里需要用到列表来充当存放值
# 图内的img_list是原验证码顺序数组,sort_list是判断坐标后正确的顺序数组
session.post(url=url,data=datas)
code_data = parse.urlencode(code_data_dict,doseq=True) # 转换成表单形式
Python全栈(后端、数据分析、脚本、爬虫、EXE客户端) / 前端(WEB,移动,H5) / Linux / SpringBoot / 机器学习
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~