【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)    # 转换成表单形式

 

复制代码

 

posted @   PythonNew_Mr.Wang  Views(1455)  Comments(0Edit  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示