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

使用Python爬取需登录网站数据时出现MethodNotAllowed错误如何解决

错误原因

你当前的loginurl是网站首页地址,该路由仅支持GET请求,不接受POST方式提交的登录表单,所以返回MethodNotAllowed(请求方法不被允许)的报错。

解决步骤

  • 查找真实登录接口
    打开浏览器开发者工具(按F12唤起),切换到「网络」标签,勾选「保留日志」选项,手动在网页端完成一次登录操作,在网络请求列表中筛选方法为POST的请求,该请求对应的地址才是登录数据提交的真实接口,替换代码中的loginurl变量。
  • 补全请求头参数
    多数站点会校验请求头中的User-Agent、Referer、Content-Type字段,缺失对应字段会直接被拦截。你可以直接复制浏览器中登录请求携带的请求头,作为参数传入post请求的headers中。
  • 使用Session维持登录状态
    requests默认不会自动保存Cookie,就算登录请求发送成功,后续请求个人数据页面时也会被判定为未登录。修改代码使用Session会话实例管理请求,示例如下:
import requests

headers = {
    # 此处替换为你从浏览器登录请求中复制的请求头内容
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
    "Referer": "https://cbscarrickonsuir.app.vsware.ie/"
}

# 初始化会话自动管理Cookie
session = requests.Session()
# 先GET一次首页获取初始Cookie和可能的动态校验参数
session.get("https://cbscarrickonsuir.app.vsware.ie/", headers=headers)

login_api = "替换为你找到的真实登录接口地址"
payload = {"username":"你的账号","password":"你的密码","source":"web"}
# 发送登录请求
login_resp = session.post(login_api, data=payload, headers=headers)
# 请求个人数据页面
data_resp = session.get("https://cbscarrickonsuir.app.vsware.ie/11571471/behaviour", headers=headers)
print(data_resp.text)
  • 核对登录提交参数
    你当前的payload是参考教程编写的,可能和站点实际要求的参数不符,部分站点会要求提交csrf token、验证码标识等动态参数,可以和浏览器登录时提交的表单数据做对比,缺失的动态参数可以从第一次GET首页的响应内容中解析提取。

注意事项

请确保爬取个人数据的行为符合站点的用户协议要求,仅用于个人自用用途。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 18:24:07