You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python Requests登录带验证码网站时验证码无效的问题求助

解决验证码无效问题:关联Session请求验证码

你的问题根源在于验证码请求没有和登录会话绑定。当前代码里,你用requests.get(CapImgURL)单独请求验证码图片,这会创建一个全新的HTTP会话,和之前获取登录页面的Session()实例完全无关。而网站是通过会话Cookie来关联验证码与用户登录请求的,两个不同会话拿到的验证码自然无法匹配,导致登录时提示无效。

修正方案:用同一个Session请求验证码

必须使用初始化的Session对象(也就是代码里的s)来请求验证码图片,这样所有请求都会共享同一个会话Cookie,网站就能正确关联你的验证码和后续登录请求。另外还要注意代码里的变量名拼写错误(CaptchaImgURL和CapImgURL不一致),这也可能导致问题。

修正后的完整代码如下:

import requests
from bs4 import BeautifulSoup

# 初始化会话、基础参数
url = "http://somesite.com"
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"}  # 补充你的请求头
LoginHeaders = headers  # 一般登录请求的headers和页面请求一致,可根据实际调整
user = "你的用户名"
pwd = "你的密码"
login_details = {}

with requests.Session() as s:
    # 1. 用会话请求登录页面,获取会话Cookie
    r = s.get(url, headers=headers)
    soup = BeautifulSoup(r.content, features="html.parser")
    
    # 2. 用同一个会话请求验证码图片(注意变量名统一)
    CaptchaImgURL = 'https://somesite.com/image.axd?uid=49a9ca-3a3e-40e7'
    r = s.get(CaptchaImgURL)  # 这里用s.get而不是requests.get
    with open('ImageVerify.jpg', 'wb') as f:
        f.write(r.content)
    
    # 3. 收集登录信息并提交
    login_details['username'] = user
    login_details['passwd'] = pwd
    login_details['txtImgVerifyCode'] = input('Enter Code: ')
    login_details['button'] = 'Log in'
    
    # 4. 用同一个会话提交登录请求
    r = s.post(url, data=login_details, headers=LoginHeaders)
    
    # 验证登录结果示例
    if "登录成功" in r.text:
        print("登录成功!")
    else:
        print("登录失败,可能是验证码或账号密码错误")

额外优化建议

如果验证码URL是动态生成的(比如每次请求登录页都会变化uid参数),建议不要硬编码URL,而是从登录页的HTML中解析出来:

# 从soup中提取验证码图片URL(替换成实际的img标签属性)
captcha_img = soup.find('img', id='verify-code-img')
if captcha_img:
    CaptchaImgURL = captcha_img['src']
    # 处理相对URL,拼接成绝对URL
    if not CaptchaImgURL.startswith('http'):
        CaptchaImgURL = requests.compat.urljoin(url, CaptchaImgURL)

这样即使网站调整了验证码URL的参数,你的代码也能自动适配,避免硬编码带来的维护问题。

内容的提问来源于stack exchange,提问作者jonny789

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 09:08:59