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

使用Python Requests登录letterboxd.com返回200但未认证成功求助

Letterboxd登录爬取问题修复

核心问题分析

你的登录请求未生效,主要是这几个错误导致:

  • 静态CSRF令牌无效:你用的是登录后留存的旧令牌,Letterboxd的CSRF令牌是动态生成的,每次访问登录页面都会刷新,必须在登录前从当前页面获取有效令牌。
  • 多余的HTTP Basic Auth:代码里加了auth=('my_user', 'my_pass'),但Letterboxd登录是基于表单提交的,不需要HTTP基本认证,这个参数会干扰正常登录流程。
  • 提交参数不匹配:表单提交按钮的value是Sign in(小写in),但你传的是Sign In,大小写不符会导致表单验证失败。
  • 未预加载登录页面Cookie:登录前没先访问登录页面获取初始会话Cookie,Session无法建立有效会话。

修复后的代码示例

先安装beautifulsoup4用于解析HTML获取CSRF令牌:

pip install beautifulsoup4

修改后的登录代码:

import requests
from bs4 import BeautifulSoup

user_agent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36"

with requests.Session() as s:
    # 设置浏览器UA
    s.headers['User-Agent'] = user_agent
    
    # 1. 先访问登录页面,获取有效CSRF令牌和初始会话Cookie
    login_page = s.get("https://letterboxd.com/signin/")
    soup = BeautifulSoup(login_page.text, 'html.parser')
    csrf_token = soup.find('input', {'name': '__csrf'})['value']
    
    # 构造正确的登录表单数据
    login_data = {
        '__csrf': csrf_token,
        'authenticationCode': '',
        'username': 'your_username',  # 替换成你的用户名
        'password': 'your_password',  # 替换成你的密码
        'remember': 'true',
        'submit': 'Sign in'  # 严格匹配表单按钮的value值
    }
    
    # 2. 提交登录请求,移除多余的auth参数
    login_response = s.post(
        "https://letterboxd.com/user/login.do",
        data=login_data
    )
    
    # 验证登录状态:访问主页检查user_type字段
    homepage = s.get("https://letterboxd.com/")
    if "analytic_params['user_type'] = 'Member';" in homepage.text:
        print("登录成功!")
    else:
        print("登录失败,请检查用户名密码或参数设置")

额外注意事项

  • 验证码触发:多次登录失败后,Letterboxd可能会启用reCAPTCHA验证,此时requests无法自动处理,需手动验证或使用验证码服务(正常登录一般不会触发)。
  • Cookie有效期:勾选remember=true后,登录Cookie会长期有效;否则会话结束后失效。
  • 页面结构变化:若后续CSRF令牌获取失败,需重新检查登录页面的HTML结构,确认令牌的选择器是否正确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 19:29:52