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

使用Python Requests库登录slicethepie.com时遇419错误求助

问题解答

是否需要传递XSRF-TOKEN?

是的,你需要传递XSRF-TOKEN,但必须配合表单中的_token字段一起使用——两者需要对应匹配(这类验证常见于Laravel框架,Cookie中的XSRF-TOKEN是加密存储的,表单里的_token是解密后的有效令牌,服务器会验证两者的关联性)。

你的代码返回419错误的原因

  1. 会话Cookie处理冲突
    你使用了requests.Session()却手动在headers里设置Cookie,Session会自动管理会话Cookie,手动设置会覆盖或干扰Session的Cookie存储逻辑,导致服务器无法验证会话一致性。

  2. 请求格式不匹配
    你用json=payload发送请求,但网站实际接受的是表单编码格式(application/x-www-form-urlencoded),服务器无法正确解析JSON格式的登录参数。

  3. Payload语法错误
    location[latitude]: None是无效的Python字典语法,应该写成"location[latitude]": None。

  4. 硬编码Token过期/不匹配
    你手动填写的_token和Cookie中的XSRF-TOKEN可能不对应,或者已经过期。正确做法是从登录页面的响应中动态提取有效令牌。

  5. 会话上下文断裂
    第一次GET请求没有通过Session发送,导致Session未保存初始会话Cookie,后续POST请求的会话上下文与服务器预期不符。

修正后的代码示例

import requests
from bs4 import BeautifulSoup  # 需先安装:pip install beautifulsoup4

login_url = "https://www.slicethepie.com/login"

with requests.Session() as s:
    # 1. 发送GET请求获取登录页面,自动保存会话Cookie
    s.headers.update({
        "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36"
    })
    response = s.get(login_url)
    
    # 2. 从页面HTML中动态提取_token
    soup = BeautifulSoup(response.text, "html.parser")
    token = soup.find("input", {"name": "_token"}).get("value")
    
    # 3. 准备正确格式的登录参数
    payload = {
        "email": "newtalent0909@gmail.com",
        "password": "password",
        "_token": token,
        "validation": "token",
        "location[latitude]": None,
        "location[longitude]": None
    }
    
    # 4. 发送POST请求,用data参数传递表单数据,Session自动携带Cookie
    headers = {
        "Accept": "*/*",
        "Referer": login_url,
        "Origin": "https://www.slicethepie.com"
    }
    p = s.post(login_url, headers=headers, data=payload)
    
    print(p.status_code)
    # 可查看响应内容确认登录结果:print(p.text)

关键注意点

  • 始终用Session发送所有请求,确保会话Cookie被自动维护。
  • 动态提取_token,避免硬编码——令牌是会话绑定的,过期后会直接触发419错误。
  • 用data=payload传递登录参数,匹配网站的表单数据格式。
  • 不要手动设置Cookie,Session会自动处理从GET请求获取的Cookie。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 17:15:16