Python识别验证码图片方法详解
Python获取验证码图片的核心是定位img标签中的srcURL并用requests下载,需拼接完整地址、添加User-Agent等headers、检查状态码200,并处理Cookie/Referer等上下文依赖。
Python获取验证码图片的核心是定位img标签中的src URL并用requests下载,需拼接完整地址、添加User-Agent等headers、检查状态码200,并处理Cookie/Referer等上下文依赖。

Python 获取验证码图片,本质上是通过网络请求下载图片资源,关键在于找到图片的 URL 并用合适的方式抓取保存。不是所有验证码都能“直接获取”,重点是先定位图片地址,再下载。
确认验证码图片的来源 URL
大多数网页验证码是通过 标签加载的,比如:
你需要在网页源码或浏览器开发者工具(Network → Img 或 Doc 标签页)中找到这个 src 属性的真实链接。注意:有些 URL 是相对路径,需拼接成完整地址(如 https://example.com/captcha?r=123456)。
用 requests 下载并保存图片
拿到完整 URL 后,用 requests 发起 GET 请求,把响应内容以二进制方式写入文件:
- 确保安装了 requests:
pip install requests - 添加 headers(尤其是 User-Agent),避免被服务器拒绝
- 检查响应状态码是否为 200,防止下载空文件或错误页
- 根据 Content-Type 或后缀名(如 .png、.jpg)决定保存格式,常见验证码是 PNG 或 GIF
示例代码:
import requests
url = "https://example.com/captcha?r=123456"
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}
resp = requests.get(url, headers=headers)
if resp.status_code == 200:
with open("captcha.png", "wb") as f:
f.write(resp.content)
print("验证码图片已保存")
else:
print("下载失败,状态码:", resp.status_code)
处理动态或带 Referer / Cookie 的情况
有些网站校验 Referer、Cookie 或 Session,直接请求会返回空白或错误图片:
- 用同一个 requests.Session() 先访问登录页或首页,自动携带 Cookie
- 手动设置 Referer 头,值为该验证码所在页面的 URL
- 必要时提取并复用前端 JS 生成的 token 或时间戳参数(如 ?t=171xxxxx)
注意法律与使用边界
获取验证码图片本身不违法,但后续若用于绕过身份验证、批量注册、刷单等,可能违反《网络安全法》或网站的 robots.txt 及用户协议。建议仅用于学习、测试自有系统,或已获明确授权的自动化场景。
基本上就这些。核心就是:找对 URL → 模拟合法请求 → 下载保存。不复杂但容易忽略请求头和上下文依赖。
Windows 10 是一款微软推出的经典操作系统,拥有硬件兼容性与多任务处理能力。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。
极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。
















