Python requests 返回404响应

0 投票
1 回答
2780 浏览
提问于 2025-04-18 17:04

我在其他几个vbulletin论坛上用过这个脚本,结果都很好,只有这个网站不行。我查了很多次,找了找有没有拼写错误什么的,但就是搞不明白。我还创建了一个假用户账号来登录。

网站地址 = www.thereeftank.com
用户名 imadummy
密码 Imadummy123

这是我的代码,我得到了一个404的响应,但我搞不清楚这是怎么回事。

import requests

r = requests.session()

forumURL = "http://www.thereeftank.com/forums/"

headers = {
        'User-Agent': 'Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.3) Gecko/20100401 Firefox/4.0 (.NET CLR 3.5.30729)',
        'Referer': 'http://thereeftank.com/forums/'}

loginpayload = {
    'vb_login_username': 'imadummy',
    'vb_login_password': '',
    's': '',
    'securitytoken': 'guest',
    'do': 'login',
    'vb_login_md5password': '91af104d37ced6cc91958929b52be1bb',
    'vb_login_md5password_utf': '91af104d37ced6cc91958929b52be1bb'}


def login():
    loginURL = forumURL + 'login.php?do=login'

    z = r.post(loginURL, data=loginpayload, headers=headers)
    print z.url
    print z
    if 'Thank you for logging in, imadummy.' in z.text:
        return True
    else:
        return False

print login()

1 个回答

1

在检查了“z”中的响应内容后,你实际上得到了

Invalid Redirect URL (http://thereeftank.com/forums/)

通过在你的Referer网址中添加“www.”来更改你的请求头,可以解决这个问题。

headers = {
        'User-Agent': 'Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.3) Gecko/20100401 Firefox/4.0 (.NET CLR 3.5.30729)',
        'Referer': 'http://www.thereeftank.com/forums/'}

撰写回答