『python爬虫』25. 接入超级鹰处理验证码(保姆级图文)

news2024/12/23 22:18:57

目录

  • 1. 验证码平台的使用
    • 1.1 下载demo程序
    • 1.2 注册后生成软件id
    • 1.3 查验证码类型
    • 1.4 demo文件中填写我们的用户参数测试效果
  • 2. 分析超级鹰的登录
  • 3. 完整代码
    • 总结


欢迎关注 『python爬虫』 专栏,持续更新中
欢迎关注 『python爬虫』 专栏,持续更新中

1. 验证码平台的使用

1.1 下载demo程序

注册后在开发文档中下载demo,按照

一个超级鹰(新用户绑定公众号送免费1000题分)
http://www.chaojiying.com/api-14.html(下载python的demo)

在这里插入图片描述

1.2 注册后生成软件id

http://www.chaojiying.com/user/mysoft/do/

在这里插入图片描述

  • 你会得到你的软件ID软件KEY
    在这里插入图片描述

1.3 查验证码类型

http://www.chaojiying.com/price.html(验证码类型对应表)

我们的4位以内英文数字 验证码类型为1004
在这里插入图片描述

1.4 demo文件中填写我们的用户参数测试效果

在这里插入图片描述
a.jpg使我们的验证码图片,chaojiying.py是测试demo文件,我这边为了方便把验证码图片放在新建的文件夹code

if __name__ == '__main__':
    # 用户中心>>软件ID 生成一个替换 96001
    # chaojiying = Chaojiying_Client('超级鹰用户名', '超级鹰用户名的密码', '软件ID')	#用户中心>>软件ID 生成
    chaojiying = Chaojiying_Client('超级鹰用户名', '超级鹰用户名的密码', '软件id')
    # 本地图片文件路径 来替换 a.jpg 有时WIN系统须要//
    im = open('code//a.jpg', 'rb').read()  # im就是图片的所有字节(图片)
    # 1902 验证码类型  官方网站>>价格体系
    result = chaojiying.PostPic(im, 1004)
    print(result)#1-4位英文数字的识别结果 字典类型
    # {'err_no': 0, 'err_str': 'OK', 'pic_id': '1209121250911890365', 'pic_str': '7261', 'md5': '547c0ee1a7023230759c84c451a88fe2'}
    print(type(result))# <class 'dict'>
    print(result.get('pic_str',0)) #7261

2. 分析超级鹰的登录

可以注意到超级鹰的用户登录是需要验证码识别的,我们就用超级鹰自身的验证码识别来识别他自己的登录验证码。

http://www.chaojiying.com/user/login/
  • 验证码图片 xpath /html/body/div[3]/div/div[3]/div[1]/form/div/img
    在这里插入图片描述
    .screenshot_as_png直接将图片转为字节码信息
img = web.find_element_by_xpath('/html/body/div[3]/div/div[3]/div[1]/form/div/img').screenshot_as_png
  • 然后输入我们的登录信息
  • 账号的xpath /html/body/div[3]/div/div[3]/div[1]/form/p[1]/input
  • 密码的xpath /html/body/div[3]/div/div[3]/div[1]/form/p[2]/input
  • 验证码的xpath /html/body/div[3]/div/div[3]/div[1]/form/p[3]/input
    在这里插入图片描述
  • 点击登录 xpath /html/body/div[3]/div/div[3]/div[1]/form/p[4]/input
    在这里插入图片描述

3. 完整代码

成功登录
在这里插入图片描述

from selenium.webdriver import Chrome
# 导入超级鹰的demo文件
from chaojiying import Chaojiying_Client
import time

web = Chrome()

web.get("http://www.chaojiying.com/user/login/")

# 先获取验证码图片的字节信息,然后调用超级鹰的demo文件中写好的识别方法,传入图片和我们超级鹰的参数,得到识别结果验证码
img = web.find_element_by_xpath('/html/body/div[3]/div/div[3]/div[1]/form/div/img').screenshot_as_png
chaojiying = Chaojiying_Client('超级鹰用户名', '超级鹰用户名的密码', '软件id')	#用户中心>>软件ID
dic = chaojiying.PostPic(img, 1902)#调用超级鹰demo文件的识别文件方法
verify_code = dic.get('pic_str',0)#如果没有识别结果,赋值为0
if verify_code==0:
    print("没有识别结果,检查是否正确填写了参数")
    time.sleep(1000000)
# 向页面中填入用户名, 密码, 验证码
web.find_element_by_xpath('/html/body/div[3]/div/div[3]/div[1]/form/p[1]/input').send_keys("超级鹰用户名")
web.find_element_by_xpath('/html/body/div[3]/div/div[3]/div[1]/form/p[2]/input').send_keys("超级鹰用户名的密码")
web.find_element_by_xpath('/html/body/div[3]/div/div[3]/div[1]/form/p[3]/input').send_keys(verify_code)

time.sleep(5)
# 点击登录
web.find_element_by_xpath('/html/body/div[3]/div/div[3]/div[1]/form/p[4]/input').click()


总结

大家喜欢的话,给个👍,点个关注!给大家分享更多计算机专业学生的求学之路!

版权声明:

发现你走远了@mzh原创作品,转载必须标注原文链接

Copyright 2023 mzh

Crated:2023-3-1

欢迎关注 『python爬虫』 专栏,持续更新中
欢迎关注 『python爬虫』 专栏,持续更新中
『未完待续』


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/542710.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Golang每日一练(leetDay0070) 移除链表元素、计数质数

目录 203. 移除链表元素 Remove Linked-list Elements &#x1f31f; 204. 计数质数 Count Primes &#x1f31f;&#x1f31f; &#x1f31f; 每日一练刷题专栏 &#x1f31f; Rust每日一练 专栏 Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每…

chatgpt赋能Python-python3_8安装pyqt5

Python3.8安装PyQt5教程 介绍PyQt5 PyQt5是一个用于创建桌面应用程序的Python模块。它利用Qt框架的本地GUI应用程序开发工具包&#xff0c;为Python开发者提供了一种方便的方式来创建跨平台的应用程序。PyQt5支持在Windows&#xff0c;MacOS和Linux等主要桌面操作系统上构建G…

ChatGPT api 接口调用测试

参考文档&#xff1a; https://platform.openai.com/docs/quickstart/build-your-application示例说明&#xff1a; 本示例会生成一个简单的ChatGPT api接口调用server程序&#xff0c;该程序可以给用户输入的宠物类别为宠物取三个名字。打开网页后&#xff0c;会看到用户输入…

chatgpt赋能Python-python3_8_5怎么保存

Python 3.8.5&#xff1a;什么是它&#xff0c;为什么它重要&#xff0c;以及如何安装和保存&#xff1f; Python是当今世界上最受欢迎的编程语言之一。Python 3.8.5是该语言的最新版本&#xff0c;它引入了一些重要的改进和新特性。这篇文章将介绍Python 3.8.5并向您展示如何…

macOS Ventura 13.4 (22F66) Boot ISO 原版可引导镜像下载

本站下载的 macOS 软件包&#xff0c;既可以拖拽到 Applications&#xff08;应用程序&#xff09;下直接安装&#xff0c;也可以制作启动 U 盘安装&#xff0c;或者在虚拟机中启动安装。另外也支持在 Windows 和 Linux 中创建可引导介质。 macOS Ventura 13.4 包括以下增强功…

[创业之路-68]:科创板上市公司符合哪些条件

上交所发布《关于在上交所设立科创板并试点注册制相关情况答记者问》。上交所将认真落实习指示&#xff0c;在证监会的指导下&#xff0c;积极研究制订科创板和注册制试点方案&#xff0c;向市场征求意见并履行报批程序后实施。科创板是独立于现有主板市场的新设板块&#xff0…

chatgpt赋能Python-python3_8_2怎么用

Python 3.8.2 指南&#xff1a;介绍、使用和结论 Python 3.8.2 是近期发布的一个重大更新&#xff0c;它提供了很多新的特性和改进&#xff0c;使得 Python 编程更加高效、方便和强大。本文将向您介绍 Python 3.8.2 的主要特性和使用方法&#xff0c;帮助您更好的利用 Python …

【前后端分离博客】学习笔记05 --- canal

一、概述 使用canal rabbitMQ 实现 MySQL 和 Elasticsearch 的数据同步 图解&#xff1a; 流程如下&#xff1a; 给mysql开启binlog功能 mysql完成增、删、改操作都会记录在binlog中 canal监听binlog变化并发送消息到MQ&#xff0c;项目接收消息并实时更新elasticsearch中…

IS215UCVEH2AE speed tronic涡轮控制PCB板

IS215UCVEH2AETPMC815-11IS215UCVEM08B IS215UCVEH2AE是通用电气公司Mark VI Speedtronic控制系统的一个组件。该板的功能相当于VME控制卡。VME卡架是Mark VI的标准架&#xff0c;有13或21槽架可供选择。 IS215UCVEH2AE是一个带有附加前面板的矩形板。面板顶部和底部有一个固…

震惊——某白帽破解zabbix系统,实现命令执行,最终获取shell

如果你坚持了自己的梦想&#xff0c;全世界都会为你让路。 一、漏洞说明 zabbix&#xff08;[zbiks]&#xff09;是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案&#xff08;百度百科定义&#xff09;。很多Zabbix的admin口令使用了初始账号&…

【学习日记2023.5.17】之 项目入门介绍_YApi_Swagger

文章目录 1. 项目入门1.1 软件开发整体介绍1.2 项目介绍1.3 开发环境搭建1.3.1 前端环境搭建1.3.2 后端环境搭建1.3.3 登录功能完善1.3.4 前后端分离开发流程 1.4 导入接口文档1.5 Swagger介绍使用方式Swagger常用注解 1.6 注意事项 1. 项目入门 1.1 软件开发整体介绍 软件开发…

PySide6/PyQT多线程之 高效管理多线程:暂停、恢复和停止的最佳实践

前言 关于 PySide6/PyQT 多线程&#xff0c;正确地处理多线程编程并确保线程之间的同步和通信并不容易。 本文以一个示例代码为基础&#xff0c;介绍 PySide6/PyQT多线程的运用&#xff0c;展示如何创建和管理线程&#xff0c;以及如何实现线程之间的同步和通信。 设想这么一个…

IP组播路由协议(组播内部网关协议)

IP组播路由协议:用来建立组播树&#xff0c;是实现组播传输的关键技术。分为源分发树和共享分发树。 PIM:协议无关组播 密集模式&#xff1a; PIM-DM:密集模式PIM DVMRP:距离矢量组播路由协议 MOSPF:组播开放式最短链路优先 稀疏模式 CBT:基于核心的树 PIM-SM:稀疏模式PIM 这…

微星UEFI签名密钥泄露引发“末日”供应链攻击恐慌

对硬件制造商微星Micro-Star International&#xff08;更广为人知的名称是 MSI&#xff09;的勒索软件入侵引发了人们对毁灭性供应链攻击的担忧&#xff0c;这些攻击可能会注入恶意更新&#xff0c;这些更新已使用受大量最终用户设备信任的公司签名密钥进行签名。 这有点像世…

chatgpt赋能Python-python3_7怎么更新

Python3.7如何更新&#xff1f; 对于拥有10年Python编程经验的工程师来说&#xff0c;更新Python版本是必不可少的。现在最新版本的Python是3.7&#xff0c;那么这个版本应该如何更新呢&#xff1f; 更新步骤 下载Python3.7安装包 在Python官网上下载即可。如果你使用的是L…

Cube Map 系列之:手把手教你 实现 立方体贴图

什么是Cube Map 在开始立方体贴图之前&#xff0c;我们先简单了解下cube map。 cube map 包含了六个纹理&#xff0c;分别表示了立方体的六个面&#xff1b; 相较二维的纹理使用坐标uv来获取纹理信息&#xff0c;这里我们需要使用三维的方向向量来获取纹理信息&#xff08;一…

力扣---LeetCode20. 有效的括号(栈)

文章目录 前言&#x1f31f;一、20. 有效的括号&#x1f31f;二、链接&#x1f31f;三、方法&#xff1a;栈实现&#x1f30f;3.1思路&#xff1a;&#x1f30f;3.2代码&#xff1a; &#x1f31f;四、补充&#xff1a;&#x1f63d;总结 前言 &#x1f467;个人主页&#xff1…

springboot+java高校教师学术成果管理系统-idea

功能介绍项目介绍Spring框架是Java平台的一个开放源代码的Full-stack(全栈)应用程序框架&#xff0c;和控制翻转容器的实现。Spring框架的一些核心功能理论&#xff0c;可以用于所有Java应用&#xff0c;Spring还为Java EE构建的Web应用提供大量的扩展支持。Spring框架没有实现…

python使用基础 pycharm代码的git同步

我们大家在编写代码的时候经常会遇到各种版本的控制问题。为此版本控制工具是每一个编写代码的同志均需要面临的问题。目前&#xff0c;业内已经有非常成熟的解决方案&#xff0c;比如我们常说的github、gitee等。由于国内网络原因&#xff0c;本文以gitee为例进行使用说明。 1…

基于SpringCloud的分布式网上商城的设计与实现

背景 经过网上调查和搜集数据,我们可以发现商城管理方面的系统并不是相当普及,在分布式架构商城管理方面的可以有许多改进。实际上如今信息化成为一个未来的趋势或者可以说在当前现代化的城市典范中,信息化已经成为主流,开发一个分布式架构网上商城系统一方面的可能会更合乎时…