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

如何用Python Requests从ASP.NET页面获取login_token与login_id值

解决ASP.NET站点动态生成login_token和login_id的获取问题

BeautifulSoup只能解析静态HTML,而login_token和login_id是jQuery在客户端动态生成的,Requests请求返回的原始页面里根本没有这些值,所以拿不到。给你两种可行的解决办法:

方法一:用无头浏览器执行JS渲染页面

直接模拟真实浏览器加载页面、执行JS,就能获取渲染后的动态值,推荐用Playwright(轻量且易用):

  • 先安装依赖:
    pip install playwright
    playwright install chromium
    
  • 编写Python代码:
    from playwright.sync_api import sync_playwright
    
    with sync_playwright() as p:
        # 启动无头浏览器(想看界面就把headless改成False)
        browser = p.chromium.launch(headless=True)
        page = browser.new_page()
        # 访问目标页面,自动维持会话
        page.goto("https://www.turnitin.com/login_page.asp?lang=en_us")
        # 等待动态元素加载完成,根据实际页面的元素属性调整选择器
        login_token = page.locator('input[name="login_token"]').input_value()
        login_id = page.locator('input[name="login_id"]').input_value()
        print(f"login_token: {login_token}, login_id: {login_id}")
        # 要是后续要提交表单,直接在这个page对象里操作就行,会话会保持
        browser.close()
    
  • 注意:如果找不到元素,打开headless=False模式,手动查看元素的name/id,调整locator参数。

方法二:逆向JS生成逻辑

如果不想用浏览器,就直接分析页面里的jQuery代码,把生成规则翻译成Python:

  1. 打开页面F12开发者工具,找到生成login_token和login_id的JS代码片段
  2. 拆解逻辑:比如是否基于时间戳、页面隐藏值、ASP.NET会话cookie等计算
  3. 用Python实现相同逻辑,示例如下(需根据真实页面代码调整):
    假设页面JS逻辑是:
    var login_id = Math.floor(Date.now()/1000).toString();
    var sessionId = document.cookie.match(/ASP.NET_SessionId=([^;]+)/)[1];
    var login_token = btoa(login_id + "_" + sessionId);
    
    对应的Python代码:
    import base64
    import time
    import requests
    
    # 维持会话,获取ASP.NET会话cookie
    session = requests.Session()
    session.get("https://www.turnitin.com/login_page.asp?lang=en_us")
    session_id = session.cookies.get("ASP.NET_SessionId")
    
    # 按JS规则生成值
    login_id = str(int(time.time()))
    login_token = base64.b64encode(f"{login_id}_{session_id}".encode()).decode()
    
    print(f"login_token: {login_token}, login_id: {login_id}")
    
  • 这种方法效率更高,但网站更新生成规则后需要重新分析。

内容的提问来源于stack exchange,提问作者Silver Jan Baet

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 19:37:15