热门标签 | 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 安卓 大数据



推荐阅读
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • 本文介绍了Python爬虫技术基础篇面向对象高级编程(中)中的多重继承概念。通过继承,子类可以扩展父类的功能。文章以动物类层次的设计为例,讨论了按照不同分类方式设计类层次的复杂性和多重继承的优势。最后给出了哺乳动物和鸟类的设计示例,以及能跑、能飞、宠物类和非宠物类的增加对类数量的影响。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • web.py开发web 第八章 Formalchemy 服务端验证方法
    本文介绍了在web.py开发中使用Formalchemy进行服务端表单数据验证的方法。以User表单为例,详细说明了对各字段的验证要求,包括必填、长度限制、唯一性等。同时介绍了如何自定义验证方法来实现验证唯一性和两个密码是否相等的功能。该文提供了相关代码示例。 ... [详细]
  • Servlet多用户登录时HttpSession会话信息覆盖问题的解决方案
    本文讨论了在Servlet多用户登录时可能出现的HttpSession会话信息覆盖问题,并提供了解决方案。通过分析JSESSIONID的作用机制和编码方式,我们可以得出每个HttpSession对象都是通过客户端发送的唯一JSESSIONID来识别的,因此无需担心会话信息被覆盖的问题。需要注意的是,本文讨论的是多个客户端级别上的多用户登录,而非同一个浏览器级别上的多用户登录。 ... [详细]
  • 微信官方授权及获取OpenId的方法,服务器通过SpringBoot实现
    主要步骤:前端获取到code(wx.login),传入服务器服务器通过参数AppID和AppSecret访问官方接口,获取到OpenId ... [详细]
  • oracle恢复失败,RMAN数据库恢复失败解决一例
    问题:这是一个从RAC环境的数据库的RAMN备份恢复到一个单机数据库的操作。当恢复数据文件和恢复正常,但在open数据库时出报下面的错误。--rman备 ... [详细]
  • 【爬虫】关于企业信用信息公示系统加速乐最新反爬虫机制
    ( ̄▽ ̄)~又得半夜修仙了,作为一个爬虫小白,花了3天时间写好的程序,才跑了一个月目标网站就更新了,是有点悲催,还是要只有一天的时间重构。升级后网站的层次结构并没有太多变化,表面上 ... [详细]
  • struts2重点——ValueStack和OGNL
    一、值栈(ValueStack)1.实现类:OGNLValueStack2.对象栈:CompoundRoot( ... [详细]
  • 我创建了一个新的AWSSSO(使用内部IDP作为身份源,因此不使用ActiveDirectory)。我能够登录AWSCLI、AWSGUI,但 ... [详细]
  • Python入门后,想要从事自由职业可以做哪方面工作?1.爬虫很多人入门Python的必修课之一就是web开发和爬虫。但是这两项想要赚钱的话 ... [详细]
  • 【爬虫训练场】:分页爬虫案例设计Demo,Python Flask与MySQL的完美连接
    网站类应用,一定离不开MySQL,所以本案例将带着大家学习一下,通过Flask调用MySQL数据,并实现分页呈现。类被称作蓝图,它是一个存储操作方法的容器,Flask可以通过Blu ... [详细]
  • YOLOv7基于自己的数据集从零构建模型完整训练、推理计算超详细教程
    本文介绍了关于人工智能、神经网络和深度学习的知识点,并提供了YOLOv7基于自己的数据集从零构建模型完整训练、推理计算的详细教程。文章还提到了郑州最低生活保障的话题。对于从事目标检测任务的人来说,YOLO是一个熟悉的模型。文章还提到了yolov4和yolov6的相关内容,以及选择模型的优化思路。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文介绍了H5游戏性能优化和调试技巧,包括从问题表象出发进行优化、排除外部问题导致的卡顿、帧率设定、减少drawcall的方法、UI优化和图集渲染等八个理念。对于游戏程序员来说,解决游戏性能问题是一个关键的任务,本文提供了一些有用的参考价值。摘要长度为183字。 ... [详细]
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社区 版权所有