• 【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)    # 转换成表单形式
  • 相关阅读:
    Asp.Net上传大文件(页面超时)
    C#文件的大小
    设计模式简单工厂、工厂方法、抽象工厂方法
    设计模式迭代器模式
    Asp.Net下载文件
    设计模式桥接模式
    CSS尺寸(Dimensions)
    设计模式单件模式
    Android 换肤
    像QQtab切换效果的例子
  • 原文地址:https://www.cnblogs.com/wanghong1994/p/16471310.html
Copyright © 2020-2023  润新知