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

使用Requests库无法获取高校网站页面响应的技术求助

解决思路与排查方案

嘿,这种情况我之前做校园系统爬虫时也遇到过!状态码200但拿不到预期内容,大概率是服务器的反爬校验或者会话机制在搞鬼,咱们一步步来排查:

  • 先补全请求头,模拟浏览器访问
    很多学校网站会校验请求的User-Agent、Referer等头部信息,判断是不是真实浏览器访问。如果你的请求头太简单,服务器可能返回简化版页面或者防爬虫内容。试试加上这些头:

    import requests
    
    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',
        'Referer': 'http://mydy.dypatil.edu/rait/login/'
    }
    url = "http://mydy.dypatil.edu/rait/login/index.php?uname=san.yad.rt15@rait.ac.in&wantsurl="
    response = requests.get(url, headers=headers)
    print(response.text)
    
  • 用Session维持会话Cookie
    有些系统会在初始登录页设置会话Cookie,即使你直接跳转到密码页,没有携带这个Cookie,服务器会认为你是非法跳转,返回异常内容。用requests.Session()可以自动帮你管理Cookie:

    import requests
    
    session = requests.Session()
    # 先访问初始登录页面,获取必要的会话Cookie
    session.get("http://mydy.dypatil.edu/rait/login/")
    # 再请求带用户名的密码页面
    url = "http://mydy.dypatil.edu/rait/login/index.php?uname=san.yad.rt15@rait.ac.in&wantsurl="
    response = session.get(url)
    print(response.text)
    
  • 检查页面是否是JS动态渲染
    如果上面两种方法都不行,可能页面内容是通过JavaScript动态加载的。requests只能获取静态HTML源码,拿不到JS渲染后的内容。这时候可以用Selenium模拟真实浏览器加载页面:

    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    
    options = Options()
    options.add_argument('--headless=new')  # 无头模式,不弹出浏览器窗口
    driver = webdriver.Chrome(options=options)
    
    url = "http://mydy.dypatil.edu/rait/login/index.php?uname=san.yad.rt15@rait.ac.in&wantsurl="
    driver.get(url)
    print(driver.page_source)  # 这里能拿到完整的渲染后内容
    driver.quit()
    
  • 先看完整的响应内容
    你可以先直接打印response.text(而不是tree.text),看看返回的HTML里有没有隐藏的错误提示,比如“请从正常入口登录”之类的,或者有没有meta标签重定向的情况——有时候状态码200,但页面实际会自动跳转到其他页面。

先从前面两个方法试起,这是最常见的问题。如果还是不行,把返回的HTML片段贴出来,咱们再进一步分析~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:26:39