4

我已经查看了许多关于如何使用请求库创建会话的 SO 线程,但是我尝试过的方法都没有真正让我登录。我对网页设计和协议的经验很少,所以请指出我可能的任何基础知识需要了解。这是我正在做的事情:

import requests

EMAIL = 'my_email'
PASSWORD = 'my_pw'
URL = 'https://account.guildwars2.com/login'

session = requests.session()

login_data = dict(username=EMAIL, password=PASSWORD)
r = session.post(URL, data=login_data)

req = session.get('https://leaderboards.guildwars2.com/en/na/achievements/guild/Darkhaven%20Elite')

print req.content

我看到的内容是我没有登录时看到的内容。

我的语法有什么不正确的地方,还是我访问的登录页面的设置方式引起的问题?

4

1 回答 1

9

@DanAlbert 指出我告诉你使用 HTTP Auth,这不是你想要做的。我假设一切看起来都正确,可能只是您需要的 HTTP Auth。

但是,查看表单,您可能只是在 dict 中使用了错误的变量名:

import requests
s = requests.session()
login_data = dict(email='email', password='password')
s.post('https://account.guildwars2.com/login', data=login_data)
r = s.get('https://leaderboards.guildwars2.com/en/na/achievements/guild/Darkhaven%20Elite')
print r.content

如果您查看表单,则需要变量“电子邮件”和“密码”。你有“用户名”和“密码”

无论如何,HTH

于 2013-06-07T22:55:50.217 回答