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

使用Python requests登录filelist.io失败,始终返回登录页面寻求技术支持

解决filelist.io登录失败问题

以下是导致登录失败的核心问题及修正方案:

1. POST请求目标URL错误

你的代码将登录数据提交到了browse.php,但filelist.io的登录请求实际需要提交到专门的登录接口(通常为takelogin.php)。可通过浏览器开发者工具查看登录表单的action属性确认这一点。

2. 缺少必要请求头

除User-Agent外,站点会验证Referer头,需添加该字段指定请求来源页面,否则服务器可能拒绝请求。

3. 未完整提取表单字段

部分站点登录表单包含validator之外的其他隐藏字段,仅提取单个字段可能导致参数缺失,建议批量提取表单内所有输入字段。


修正后的代码示例

import requests
from bs4 import BeautifulSoup

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36',
    'Referer': 'https://filelist.io/browse.php'
}

with requests.Session() as s:
    # 获取登录页面及表单数据
    url = 'https://filelist.io/browse.php'
    r = s.get(url, headers=headers)
    soup = BeautifulSoup(r.content, 'html5lib')
    
    # 提取表单内所有输入字段
    login_form = soup.find('form')
    login_data = {}
    for input_tag in login_form.find_all('input'):
        name = input_tag.get('name')
        value = input_tag.get('value', '')
        if name:
            login_data[name] = value
    
    # 填入账号密码
    login_data['username'] = '你的用户名'
    login_data['password'] = '你的密码'
    login_data['returnto'] = '/browse.php'
    
    # 提交到正确的登录接口
    login_url = 'https://filelist.io/takelogin.php'
    r = s.post(login_url, data=login_data, headers=headers)
    
    # 验证登录状态
    check_url = 'https://filelist.io/browse.php'
    r = s.get(check_url, headers=headers)
    if 'logout' in r.text or '欢迎' in r.text:
        print('登录成功')
    else:
        print('登录失败,返回内容预览:')
        print(r.text[:500])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 11:50:32