python图片验证码识别selenium爬虫--超级鹰实现自动登录,滑块,点击

超级鹰的使用

超级鹰主要作用在我们利用selenium实现自动登录页面时往往会遇到图片类型的验证码,

而超级鹰的作用就是识别验证码返回给我们,下面看下具体的实现。

1.https://www.chaojiying.com/user/login进入超级鹰登录页面注册账号

2.下载demo包

点击开发文档,在各语言sdk例子下载下,下载所需的语言包,这里以python为例

下载完成后解压会有一个chaojiying.py文件,将文件复制到你的项目下。复制完成如果你

的python版本是2无需改动,如果是3,需要在print加上括号。

3.获取软件id

4.导入chaojiying模块下的Chaojiying_Client类,调用PostPic方法完成识别

|-------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 | from chaojiying ``import Chaojiying_Client chaojiying ``= Chaojiying_Client(``'用户名'``, ``'密码'``, ``'软件id'``) im ``= open``(``'需要识别的图片'``, ``'rb'``).read() print``(chaojiying.PostPic(im, ``1902``)) ``# 1902为识别的验证码类型 |

验证码在价格体系下查看,根据自己的所需查看

5.实例

|---------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 | from chaojiying ``import Chaojiying_Client chaojiying ``= Chaojiying_Client(``'你的用户名'``, ``'你的密码'``, ``' 软件id'``) im ``= open``(``'./img/a.jpg'``, ``'rb'``).read() ``# 读取保存的图片 print``(chaojiying.PostPic(im, ``1902``)) ``# 打印验证码 |

a.jpg为我本地保存的验证码图片

运行后发现错误,好东西往往是要收费的,没办法,只好斥资一块钱买个题分

|---|------------------------------------------------------------------------------------------------------------------------|
| 1 | {``'err_no'``: ``-``1005``, ``'err_str'``: ``'无可用题分'``, ``'pic_id'``: ``'0'``, ``'pic_str'``: '``', '``md5``': '``'} |

购买完题分后我们再次运行,发现可正常识别的内容在pic_str字段中,这时我们直接获取即可。

|---|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 | {``'err_no'``: ``0``, ``'err_str'``: ``'OK'``, ``'pic_id'``: ``'1190913450969630001'``, ``'pic_str'``: ``'7261'``, ``'md5'``: ``'aa86ba819b38b65479e5ba42d477ab03'``} |

6.实践

我们以登录超级鹰页面为例

|-------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | import time from selenium ``import webdriver from selenium.webdriver.common.by ``import By from chaojiying ``import Chaojiying_Client driver ``= webdriver.Chrome() driver.implicitly_wait(``10``) ``# 设置全局等待 driver.get(``"https://www.chaojiying.com/user/login/"``) ``# 打开登录页面 driver.find_element(by``=``By.NAME, value``=``"user"``).send_keys(``"你的用户名"``) ``# 填写用户名 driver.find_element(by``=``By.NAME, value``=``"pass"``).send_keys(``"你的密码"``) ``# 填写密码 img_list ``= driver.find_elements(by``=``By.TAG_NAME, value``=``"img"``) # img_url = img_list[2].get_attribute("src") # 获取验证码图片地址 img ``= img_list[``2``].screenshot_as_png ``# 截取定位元素位置的图 # with open("./img/img.png", mode="wb")as f: # f.write(requests.get(img_url).content) # 将图片保存到本地 chaojiying ``= Chaojiying_Client(``'你的用户名'``, ``'你的密码'``, ``' 软件id'``) # im = open("./img/img.png", 'rb').read() # 读取保存的图片 data ``= chaojiying.PostPic(img, ``1902``) ``# 打印验证码 data ``= data[``"pic_str"``] ``# 获取验证码 driver.find_element(by``=``By.NAME, value``=``"imgtxt"``).send_keys(data) ``# 填写验证码 time.sleep(``3``) driver.find_element(by``=``By.CLASS_NAME, value``=``"login_form_input_submit"``).click() ``# 点击登录 time.sleep(``2``) driver.quit() |

相关推荐
青槿吖37 分钟前
【保姆级教程】Spring事务控制通关指南:XML+注解双版本,避坑指南全奉上
xml·java·开发语言·数据库·sql·spring·mybatis
浪潮IT馆1 小时前
Windows 达梦 8(DM8)数据库完整安装教程 + 命令行导入 .dmp 文件完整指南
数据库·windows
Dylan~~~1 小时前
Redis MCP Server:让 AI 拥有“持久记忆“的革命性方案
数据库·人工智能·redis
2501_921649491 小时前
美股历史 K线数据 API接口综合评测与接入指南
后端·python·websocket·金融·restful
小小怪7501 小时前
超越Python:下一步该学什么编程语言?
jvm·数据库·python
Ulyanov1 小时前
基于PyVista的雷达导引头波束三维动态仿真与可视化:从原理到实现的完整指南
python·pyvista·雷达电子战仿真
Y001112361 小时前
Day8-MySQL-多表查询-1
数据库·sql·mysql
User_芊芊君子1 小时前
2026最新Python+AI入门指南:从零基础到实战落地,避开90%新手坑
开发语言·人工智能·python
2501_945423542 小时前
数据分析与科学计算
jvm·数据库·python
難釋懷2 小时前
Redis分片集群伸缩
数据库·redis·缓存