尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
超级鹰版免登录实战(一):Chaojiying.py + DrissionPage 实现【古诗文网图片验证码自动识别免登录】保姆级实战教程
一、 前置回顾承接上篇文章承接上篇超级鹰账号注册、充值、获取 softid 核心重点1.使用现成Chaojiying_Client超级鹰打码2.DrissionPage 操控浏览器元素截图提取验证码3.题型编码1004普通字符验证码识别4.Mac / Windows 双环境适配重点讲解 Mac Chrome 路径坑5.滑块验证码放到下一篇本篇只讲图片字符验证码⚠️ 重要合规提醒✅ 本文代码仅用于自己账号自动化学习测试请勿用于批量恶意爬虫、破解等违规场景遵守网站 robots 协议与相关法律法规。项目文件清单本篇chaojiying.py超级鹰核心打码客户端导入使用图片验证码免登录.py本篇核心主程序古诗文网自动登录开始之前需先安装“DrissionPage”自动化库pip install requests DrissionPage前置准备清单1.注册超级鹰账号并充值题分字符验证码识别消耗题分2.获取你的超级鹰账号、密码、softid3.安装 DrissionPage操控 Chromium 浏览器定位网页元素、截图验证码4.题型编码牢记1004普通字母数字字符验证码本篇核心5.Mac 用户重点指定 Chrome 浏览器路径Windows 可简化初始化代码6.项目结构your_project/├─ chaojiying.py └─ 图片验证码免登录.py# 本篇核心古诗文网字符验证码自动识别登录 完整业务流程总览本篇核心完整流程拆解1.初始化 ChromiumOptionsMac 用户配置 Chrome 浏览器路径创建 ChromiumPage 对象2.请求古诗文网登录页面等待页面加载完成3.实例化 Chaojiying_Client传入你的超级鹰账号密码 softid4.定位验证码图片元素#imgCode对该元素截图保存为yzm.png5.二进制读取截图文件调用PostPic()题型编码填10046.拿到返回结果res[pic_str]就是识别出的验证码字符串7.依次填充账号输入框、密码输入框、验证码输入框8.点击登录提交按钮完成自动化登录实现免手动输入验证码9.【拓展优化】增加异常捕获、重试逻辑识别错误调用 ReportError 上报错题返还题分二、chaojiying.py 源码解析通用打码模块导入使用文件chaojiying.py主程序中from Chaojiying import Chaojiying_Client导入#!/usr/bin/env python# coding:utf-8importrequestsfromhashlibimportmd5classChaojiying_Client(object):def__init__(self,username,password,soft_id):self.usernameusername passwordpassword.encode(utf8)self.passwordmd5(password).hexdigest()self.soft_idsoft_id self.base_params{user:self.username,pass2:self.password,softid:self.soft_id,}self.headers{Connection:Keep-Alive,User-Agent:Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0),}defPostPic(self,im,codetype,str_debug): im: 图片字节 codetype: 题目类型 参考 http://www.chaojiying.com/price.html params{codetype:codetype,str_debug:str_debug}params.update(self.base_params)files{userfile:(ccc.jpg,im)}rrequests.post(http://upload.chaojiying.net/Upload/Processing.php,dataparams,filesfiles,headersself.headers)returnr.json()defPostPic_base64(self,base64_str,codetype): im: 图片字节 codetype: 题目类型 参考 http://www.chaojiying.com/price.html params{codetype:codetype,file_base64:base64_str}params.update(self.base_params)rrequests.post(http://upload.chaojiying.net/Upload/Processing.php,dataparams,headersself.headers)returnr.json()defReportError(self,im_id): im_id:报错题目的图片ID params{id:im_id,}params.update(self.base_params)rrequests.post(http://upload.chaojiying.net/Upload/ReportError.php,dataparams,headersself.headers)returnr.json()if__name____main__:# 账号和密码替换成自己的chaojiyingChaojiying_Client(tiantian1000,htur6h31,96001)# 更改成要识别的验证码的图片imopen(../RandCode.png,rb).read()resultchaojiying.PostPic(im,1004)#本地图片文件路径 来替换 a.jpg 有时WIN系统须要//print(result[pic_str])#1902 验证码类型 官方网站价格体系 3.4版 print 后要加()#print chaojiying.PostPic(base64_str, 1902) #此处为传入 base64代码✨ 核心方法重点解读本篇重点使用 PostPic__init__初始化超级鹰账号密码密码做 md5 加密组装基础请求参数PostPic(im, codetype)【本篇核心】传入图片字节流 题型编码上传图片给超级鹰识别返回 json 结果 -1004普通字符验证码本篇古诗文网识别字母数字PostPic_base64base64 图片上传识别备选方案某些场景优化使用ReportError识别错误上报错题申请返还题分拓展优化必加三、【图片验证码免登录.py】完整源码逐行深度解析文件【图片验证码免登录.py】Mac 环境重点适配版本DrissionPage 操作 Chromium元素截图识别字符验证码fromChaojiyingimportChaojiying_ClientfromDrissionPageimportChromiumPage,ChromiumOptions#网页自动化爬取------自动化库importtime#Mac电脑必备----创建浏览器【安卓只需要pageChromiumPage()即可】coChromiumOptions()co.set_browser_path(/Applications/Google Chrome.app/Contents/MacOS/Google Chrome)co.auto_port(True)pageChromiumPage(co)page.get(https://www.gushiwen.cn/user/login.aspx?tabaccountfrom)#请求登录网址time.sleep(2)ChaojiyingChaojiying_Client(超级鹰账号,超级鹰密码,96001)#登录超级鹰imgpage.ele(#imgCode)img.get_screenshot(yzm.png)#把图截下来withopen(yzm.png,rb)asf:#二进制读取resChaojiying.PostPic(f.read(),1004)#应用超级鹰yzmres[pic_str]print(yzm)time.sleep(1)zhanghaopage.ele(#email).input(你登录该网址的账号)mimaopage.ele(#pwd).input(你登录该网址的密码)yanzhengmapage.ele(#code).input(yzm)loginpage.ele(#btnSubmit).click() 逐段拆解源码保姆级讲解1. 导入模块fromChaojiyingimportChaojiying_ClientfromDrissionPageimportChromiumPage,ChromiumOptionsimporttimeChaojiying_Client超级鹰打码核心类调用打码平台识别验证码ChromiumPage,ChromiumOptionsDrissionPage 浏览器自动化核心操控 Chrome定位网页元素、截图time等待页面加载防止元素未加载完成报错很多新手踩坑点2. Mac 专属浏览器初始化【重点很多 Mac 用户直接报错就在这里】--Mac 系统必须指定 Chrome 完整路径否则找不到浏览器启动失败coChromiumOptions()co.set_browser_path(/Applications/Google Chrome.app/Contents/MacOS/Google Chrome)co.auto_port(True)pageChromiumPage(co)Windows 系统简化写法替换上面 4 行pageChromiumPage()踩坑提示Mac 不同版本 Chrome 安装位置有可能不一样确认你的 Chrome 路径是否匹配3. 访问目标登录页面并等待加载page.get(https://www.gushiwen.cn/user/login.aspx?tabaccountfrom)time.sleep(2)page.get()浏览器打开目标登录 urltime.sleep(2)强制等待 2 秒等待页面 DOM、验证码图片渲染完成 优化拓展可以改用元素等待显式等待替代固定 sleep稳定性更高后面踩坑篇讲解4. 实例化超级鹰客户端ChaojiyingChaojiying_Client(账号,密码,96001)⚠️ 重要提醒替换成你自己的超级鹰账号、密码5. 定位验证码元素截图保存本地imgpage.ele(#imgCode)img.get_screenshot(yzm.png)page.ele(#imgCode)根据 CSS 选择器定位验证码图片元素#imgCodeget_screenshot(yzm.png)元素截图重点只截取验证码图片区域不是整个页面截图 踩坑点如果用整个页面截图多余背景干扰识别优先使用元素截图6. 读取截图调用超级鹰识别验证码核心withopen(yzm.png,rb)asf:resChaojiying.PostPic(f.read(),1004)yzmres[pic_str]print(yzm)rb二进制读取图片文件上传打码平台必须二进制字节流PostPic(...,1004)题型编码 1004普通字符验证码识别res[pic_str]提取识别出来的验证码字符串打印输出调试7. 填充账号、密码、验证码提交登录zhanghaopage.ele(#email).input(账号)mimaopage.ele(#pwd).input(密码)yanzhengmapage.ele(#code).input(yzm)loginpage.ele(#btnSubmit).click()依次定位输入框元素填入账号、密码、识别出的验证码click()点击登录提交按钮完成登录自动化四、调试优化 踩坑大全CSDN 读者最喜欢的章节踩坑 1Mac 启动 Chromium 报错找不到浏览器❌ 现象初始化 ChromiumOptions 后启动失败✅ 解决核对 Chrome 完整路径Mac 系统必须配置set_browser_path踩坑 2验证码还没加载完成就截图识别失败❌ 现象截图空白超级鹰返回识别错误✅ 解决增加等待时间或者使用显式等待等待 #imgCode 元素加载完成再截图踩坑 3识别结果错误提交登录失败❌ 现象超级鹰识别出来的验证码不对登录校验失败✅ 解决检查截图是否完整有没有裁剪缺失调用ReportError上报错题申请返还题分增加重试逻辑识别失败重新刷新验证码重新截图识别踩坑 4元素选择器失效找不到页面元素❌ 现象page.ele()返回空程序报错✅ 解决F12 重新核对 CSS 选择器网页改版后选择器会变动及时更新踩坑 5超级鹰题分不足识别接口报错❌ 现象返回 err_no 报错无法识别验证码✅ 解决登录超级鹰后台充值题分查看账号剩余题分踩坑 6Windows 用户照搬 Mac 浏览器初始化代码❌ 现象Windows 写死 Chrome 路径导致启动异常✅ 解决Windows 简化直接pageChromiumPage()五、优化升级完整版代码增加 try except 异常捕获重试机制保姆级增强版 给读者福利在原版基础上加上 try except 异常捕获重试逻辑很多小白需要这个fromChaojiyingimportChaojiying_ClientfromDrissionPageimportChromiumPage,ChromiumOptionsimporttimedefgushiwen_login(max_retry3):coChromiumOptions()# Mac路径Windows注释掉下面这两行co.set_browser_path(/Applications/Google Chrome.app/Contents/MacOS/Google Chrome)co.auto_port(True)pageChromiumPage(co)try:page.get(https://www.gushiwen.cn/user/login.aspx?tabaccountfrom)time.sleep(2)chaojiyingChaojiying_Client(你的账号,你的密码,96001)retry_cnt0whileretry_cntmax_retry:imgpage.ele(#imgCode)img.get_screenshot(yzm.png)withopen(yzm.png,rb)asf:reschaojiying.PostPic(f.read(),1004)ifres[err_no]!0:print(f识别失败重试{retry_cnt1})retry_cnt1time.sleep(1)continueyzmres[pic_str]print(f识别验证码{yzm})page.ele(#email).input(你的账号)page.ele(#pwd).input(你的密码)page.ele(#code).input(yzm)page.ele(#btnSubmit).click()print(登录提交完成)breakexceptExceptionase:print(f程序异常{e})finally:# 可选关闭浏览器# page.quit()passif__name____main__:gushiwen_login()六、拓展思考1. 思考 1如何实现自动刷新验证码识别失败自动刷新重新截图不用手动干预2. 思考 2如果验证码是干扰线很多的复杂字符除了调整题型编码还有哪些优化方案提升识别准确率3. 思考 3如何封装一个通用工具类统一管理打码调用方便后续拓展更多类型验证码4. 思考 4多账号批量登录场景如何管理超级鹰题分消耗做题分监控七、结尾恭喜你到这里你已经完整跑通了一套 “超级鹰识别验证码 → 自动登录 → Cookie 持久化 → 免登录” 的闭环。这套思路是通用框架不只适用于某一类网站学会了它你能轻松应对各种需要验证码登录的自动化场景。留两个思考题给你1.如果目标站的验证码是滑块类型codetype 要换成多少代码要改哪里2.如果 Cookie 被目标站加密存储不是明文你的持久化方案要怎么升级评论区聊起来有更好的方案、踩过的坑欢迎分享。觉得有用就点赞 收藏 关注下一篇我会继续深挖重磅下篇预告滑块缺口验证码自动化实战✨ 下一篇单独开一篇完整教程专门讲解滑块验证码9901 型使用超级鹰识别缺口坐标搭配 DrissionPage Actions 模拟鼠标拖动滑块完成验证完整源码解析敬请期待欢迎关注评论区交流踩坑经历
RELATED

相关推荐

专其利 AI V3.4.0 更新说明

专其利 AI V3.4.0 更新说明

专其利 AI V3.4.0 升级说明 AI 对话,更懂你在写什么 输入框支持 快捷引用——直接关联当前专利、上传文件或图片,AI 自动理解上下文,无需反复粘贴内容图片直接上传:支持拖拽或粘贴图片,AI 自动识别图中技术内容并纳入…

📅 2026/11/2 6:38:12
RVC 开源音色转换实战:Retrieval-based Voice Conversion 与 WebUI 从安装到调参

RVC 开源音色转换实战:Retrieval-based Voice Conversion 与 WebUI 从安装到调参

RVC 开源音色转换实战:Retrieval-based Voice Conversion 与 WebUI 从安装到调参 RVC(Retrieval-based Voice Conversion,社区常用实现与 WebUI 多托管于 GitHub 相关仓库,检索关键词 RVC-Project / Retrieval-based-Voice-Conver…

📅 2026/11/2 6:38:12
深度学习毕业设计选题推荐:基于YOLO11的交通标志检测系统设计与实现(Python+Django+Vue3+对接deepseek)

深度学习毕业设计选题推荐:基于YOLO11的交通标志检测系统设计与实现(Python+Django+Vue3+对接deepseek)

🔥作者:雨晨源码🔥 💖简介:java、微信小程序、安卓;定制开发,远程调试 代码讲解,文档指导,ppt制作💖 精彩专栏推荐订阅:在下方专栏👇&…

📅 2026/11/2 6:38:12
MORE NEWS

更多资讯

📰

两个月AI辅助学习实战:LLM、Agent、Token与API踩坑心得

1. 两个月AI辅助学习,我到底在折腾什么先说结论:这两个月我几乎把市面上主流的LLM工具、Agent框架、API调用方式都摸了一遍,从最开始只会对着聊天框敲问题,到后来自己搭Agent、调API、算Token、排查401和403报错,踩过的…

📰

跨芯片算子优化实战:FlagOS 如何让 Triton GEMM 反超原生库

做算子优化这件事,一旦涉及“跨芯片”,痛苦指数会直线上升。这次要聊的项目是众智的 FlagOS,目标很明确:让同一套用 Triton 写出来的 GEMM 算子,在不同 AI 芯片上都能拿到接近乃至超过厂商原生库的性能。先说结论&…

📰

教师AI工具选型指南:聊天、画图、视频、数字人四类工具教学应用与避坑

1. 教师AI工具选型的底层逻辑1.1 为什么教师群体需要专属的AI工具清单2026年开年到现在,我陆续帮十几位中小学和高校教师做过AI工具的选型咨询,发现一个很普遍的现象:网上那些"AI工具大全"看着热闹,动辄列出一两百个工具…

📰

企业Wiki智能化改造:AI技术提升知识管理效率

1. 项目背景:为什么企业Wiki总是无人问津三年前我参与搭建的公司Wiki系统,最近查看后台数据时发现一个尴尬的事实:90%的页面月访问量不足10次。这个现象在技术圈其实非常普遍——根据2023年知识管理调研报告,78%的企业内部知识库都…

📰

macOS 27本地AI引擎fmkit:系统级Foundation Model运行时详解

1. 这不是“AI功能”,是苹果悄悄塞进系统底层的本地推理引擎最近刷到一条标题:“苹果在 macOS 27 里藏了个 AI:断网能用,不注册,甚至不用花钱”——第一反应是点进去看是不是又一个营销号编的“AI幻觉”。结果翻了几篇…

📰

SLDS 2.0分布式架构演进:物流系统性能优化与容灾实践

1. 项目概述:SLDS 2.0的架构演进背景全球物流履约网络SLDS 2.0的架构升级,源于传统单体架构在业务量爆发式增长下的三大核心痛点:首先是订单处理能力的天花板效应,当单日订单量突破千万级时,集中式数据库的I/O瓶颈导致…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬