关于图像验证码问题,解决方案

发布时间:2026/10/21 2:51:03

关于图像验证码问题,解决方案 目录前言一、使用cv2解析验证码识别方式二、浏览器复用Debug模式启动浏览器三、直接绕过登录前言使用到的第三方库请自行pip install 库名import pytesseract # pip install pytesseract from PIL import Image import cv2 as cv # pip install opencv_python import faker from selenium import webdriver from selenium.webdriver.support.wait import WebDriverWait from selenium.webdriver.support import expected_conditions as ec import os import time from selenium import webdriver一、使用cv2解析验证码识别方式如果你的图像是base64位数据流请移步其中有相应的函数方法解析在这里就过多聊了直接上源码关于base64位滑块图片与UI自动化滑块解决方法_阿飞797的博客-CSDN博客def register_verification_code(): driver webdriver.Chrome() # 实例化浏览器对象 driver.maximize_window() wait WebDriverWait(driver, 5) # 实例化等待对象 register_url URL # 项目URL driver.get(register_url) # 在新的窗口打开url # 随机生成手机号码 phone_number faker.Faker(localezh_CN).phone_number() # 通过手机号码获取6位数据 password phone_number[0:6] # 显性等待手机号码输入框元素并进行输入内容 locator (id, txtUName) wait.until(ec.visibility_of_element_located(locator)).send_keys(phone_number) # 显性等待密码输入框元素并进行输入内容 locator (id, txtPassword) wait.until(ec.visibility_of_element_located(locator)).send_keys(password) # 定位验证码元素并进行验证码图像存储 file_name imgVerify.png driver.find_element(valuechkd).screenshot(file_name) # 对存储的验证码进行均值迁移去噪声然后二值化处理最终覆盖源文件进行存储 image cv.imread(file_name) blurred cv.pyrMeanShiftFiltering(image, 10, 100) gray cv.cvtColor(blurred, cv.COLOR_BGR2GRAY) t, binary cv.threshold(gray, 0, 255, cv.THRESH_BINARY | cv.THRESH_OTSU) cv.imwrite(file_name, binary) # 使用 PIL 打开图像转化为图像对象并使用 pytesseract 进行图像识别验证码 image Image.open(file_name) img_str pytesseract.image_to_string(image) # 输入识别的验证码 driver.find_element(valueTxtChkCode).send_keys(img_str) # 显性等待注册按钮元素并进行点击 locator (id, btnRegister) wait.until(ec.visibility_of_element_located(locator)).click() # 显性等待url地址发生了变化 wait.until(ec.url_changes(register_url)) if __name__ __main__: register_verification_code()使用cv2中的图像识别解析出图像中的数字或字母该方式有相应的限制就是背景图比较杂乱的话识别出来的字符串可能不是图片上的所以可以做注册成功或者登录成功的判断循环注册或者登录成功的标准性元素PS如果是爬虫的请设置浏览器头部信息躲避检测二、浏览器复用Debug模式启动浏览器Selenium启动浏览器默认是会清除所有缓存的所以系统如果有需要登陆验证的每次全部都要验证一遍。我们可以让Selenium直接用带有缓存的浏览器就像我们使用本机浏览器一样去访问系统。常规系统比如淘宝、携程只要完成一次登陆验证后续登陆是不会再有验证码的。通过Debug模式启动谷歌浏览器就能达到这个效果。并且Debug模式的浏览器还可以在自动化过程中实现复用浏览器来提高调试效率1.当运行 selenium 自动化时要求已经登录才能才做。这个时候我们可以提前登录运行脚本的时候复用已经打开的浏览器。2.当调试了某个步骤很多的测试用例前面N-1步已经成功只需调试第N步。如果从头开始运行脚本耗时过多这时我们可以直接复用浏览器只操作第N步。复用浏览器的特点:webdriver启动时将不再创建新的浏览器窗口 将运用已打开的浏览器的当前页面对元素的进行操作 。废话不多说直接上源码# 加载浏览器其中 os.popen(快捷方式路径) time.sleep(5) options webdriver.ChromeOptions() options.debugger_address 127.0.0.1:12138 driver webdriver.Chrome(optionsoptions) # 这里需要先运行启动浏览器在频闭以上代码后再运行get之后的操作 driver.get(url) #即可该方法需要配置浏览器的快捷方式至PC的系统变量中去PS找到goole的快捷打开方式地址一般都在C盘的Program Files (x86)中看个人的下载地址没有改下载地址的应该是C:\Program Files (x86)\Google\Chrome\Application把该至添加至PC的系统变量中再新建一个txt文本把 chrome.exe --remote-debugging-port12138 该命令行复制进去把文件后缀改成.bat可执行文件如在CMD看看chrome是否可以运行打开浏览器源码中的浏览器器路径就是该可执行文件的路径三、直接绕过登录PS该方法也是最不想说的方式直接通过访问登录时候的URL去进行之后的操作该方式限制就是需要把登录后访问的URL请求需要传的值以及是头和各项参数详细的请问项目前端就是通过直接drv.get登录后的浏览器URL。在前方设置drv访问这个URL需要传参以及限制即可(本人项目中没有好的例子就不放源码了敲也不想敲嫌弃)任性哼
延伸阅读

更多相关文章

2026/10/21 2:46:03

重言式判别:从真值表到DNF的工程化实现

简介:本资源是一份面向计算机专业本科生的数据结构课程设计实践材料,聚焦重言式判别程序的完整实现与原理剖析,解决布尔表达式逻辑恒真性自动验证这一典型算法问题。压缩包共4个文件(2个DOC文档、2个C源码)&#xff0c…

2026/10/21 2:46:03

Vue 打包发布Nginx配置

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/21 2:46:03

JSP电子投票系统:Java Web教学级完整实战项目

简介:这是一套基于JSP技术实现的企业级电子投票系统完整源码,面向Java Web初学者与课程设计实践者,解决中小型组织在线投票管理场景下的功能闭环需求,涵盖用户参与、结果统计与后台管控全流程。资源包共64个文件,以37个…

2026/10/21 4:06:14

VC++ MFC二维码解析实战:ZBar集成与内存/编码/线程避坑指南

简介:本资源是一个基于Visual C与MFC框架开发的二维码解析实践项目,面向Windows平台C初学者及图像处理入门开发者,解决在传统桌面应用中集成二维码识别功能的技术落地问题。压缩包共23个文件,含6个头文件(如DECODE.h、…

2026/10/21 4:06:14

世界国家GeoJSON数据集:WGS84坐标基准与拓扑校验实践指南

简介:本资源是一套覆盖全球所有国家及地区的标准GeoJSON地理边界数据集,面向GIS开发人员、数据可视化工程师、前端地图应用开发者及地理信息相关专业学习者,用于快速集成高精度行政区域轮廓至Web地图、空间分析或教学演示项目。数据源自权威开…

2026/10/21 4:06:14

VC6/MFC老系统嵌入二维码识别模块(无OpenCV/无C++11)

简介:本资源是一个基于Visual C与MFC框架开发的二维码解析实践项目,面向Windows平台C初学者及图像处理入门开发者,解决在传统桌面应用中集成二维码识别功能的技术落地问题。压缩包共23个文件,含6个头文件(如DECODE.h、…

2026/10/21 4:01:14

Windows部署OpenClaws:飞书接入阿里云与腾讯云大模型实战

最近在Windows上折腾开源AI助手OpenClaws,目标很简单:让飞书成为日常的AI入口,后端换成阿里云和腾讯云的国内大模型,跑通一个真正能聊天、能干活的本地Agent。整个过程中踩了不少坑,尤其是Windows环境下的依赖问题、飞…

2026/10/19 18:06:35

金融AI落地指南:从调研报告到技术选型与工程实践

简介:这份PDF报告聚焦2025年金融服务业中国AI现状与趋势,面向金融科技从业者、AI战略规划人员及关注行业数字化转型的研究者,帮助读者把握生成式AI在银行、支付、交易等场景中的落地路径与投资方向。资源包内含1个PDF文件,大小约1…

2026/10/21 0:00:35

交通流仿真实战:IDM跟驰与MOBIL换道模型参数调优与避坑指南

简介:这份资源是面向交通工程学习者与Python开发者的微观交通流仿真项目,核心实现智能驾驶模型(IDM)下的车辆跟驰与换道行为,可用于理解速度、密度与流量之间的动态关系,适合具备Python基础、希望深入交通模…

2026/10/21 0:00:35

揭穿智能体表面顺从:用追踪代码重建任务执行确定性

1. 表面顺从不是智能体的“礼貌”,而是任务执行链路上的隐性断点最近在调试一个跨平台长周期任务调度系统时,我反复遇到一种令人困惑的现象:智能体在用户指令发出后,几乎秒级响应“已收到”“正在处理”“请稍候”,UI上…

2026/10/21 0:00:35

统一内存+量化:锐龙AI Max PRO 400如何本地跑320B大模型

这段时间硬件圈和AI圈都在传一个事:AMD锐龙AI Max PRO 400系列把最高192GB统一内存搬进了PC形态的产品里,按宣传口径,本地跑320B参数的大家伙不再是纸面概念。我第一反应倒不是“内存真大”,而是这话背后的含金量——它把过去只能…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑