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

使用Requests库实现Qlink Wireless授权时的异常问题

问题分析与解决方案

你的代码不管凭据对错都返回200,还拿不到正确的套餐页面,核心原因是忽略了ASP.NET表单页面的动态验证字段,以及请求头完整性问题,导致登录请求根本没被服务器正确处理。

具体问题点

  • 缺少ASP.NET页面必备的__VIEWSTATE、__VIEWSTATEGENERATOR、__EVENTVALIDATION隐藏字段:这些字段由服务器动态生成,每次访问登录页面都会变化,必须随登录请求一起提交,否则服务器会直接忽略登录请求,返回默认页面。
  • 请求头不全:缺少Referer等关键头,服务器可能判定请求不合法,直接返回非目标页面。
  • 未验证登录状态:你直接跳转套餐页面,但实际上登录请求可能根本没生效。

修正后的代码

import requests
from bs4 import BeautifulSoup

login_url = "https://qlinkwireless.com/members/Login.aspx"
profile_url = "https://qlinkwireless.com/customer/members/plans"

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36',
    'Referer': login_url
}

def check_auth():
    session = requests.Session()
    
    # 第一步:先获取登录页面,提取动态验证字段
    login_page = session.get(login_url, headers=headers)
    soup = BeautifulSoup(login_page.text, 'html.parser')
    
    # 提取ASP.NET隐藏字段
    viewstate = soup.find('input', id='__VIEWSTATE')['value']
    viewstate_generator = soup.find('input', id='__VIEWSTATEGENERATOR')['value']
    event_validation = soup.find('input', id='__EVENTVALIDATION')['value']
    
    # 构造登录数据,包含动态字段和你的凭据
    login_data = {
        '__VIEWSTATE': viewstate,
        '__VIEWSTATEGENERATOR': viewstate_generator,
        '__EVENTVALIDATION': event_validation,
        'ctl00$ctl00$ContentPlaceHolder1$MainContent$login': '你的邮箱',
        'ctl00$ctl00$ContentPlaceHolder1$MainContent$password': '你的密码',
        # 需匹配页面登录按钮的name属性,可查看页面源码确认
        'ctl00$ctl00$ContentPlaceHolder1$MainContent$btnLogin': 'Login'
    }
    
    # 第二步:提交登录请求
    login_response = session.post(login_url, data=login_data, headers=headers)
    
    # 验证登录是否成功:可通过响应内容中的关键字判断
    if "Welcome" in login_response.text:
        print("登录成功")
        # 第三步:访问套餐页面
        profile_response = session.get(profile_url, headers=headers)
        print(profile_response.text)
    else:
        print("登录失败,检查凭据或字段是否正确")

check_auth()

额外注意事项

  • 需要先安装BeautifulSoup:执行pip install beautifulsoup4即可,也可用正则表达式提取字段,但解析库更可靠。
  • 登录按钮的字段名需和页面源码一致:打开登录页面源码,找到登录按钮的name属性,替换代码中对应的字段。
  • 若遇到验证码,还需额外处理验证码识别逻辑,部分网站会通过验证码拦截自动化请求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 17:02:26