我已经查看了很多关于如何使用requests库创建会话的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
我看到的内容是如果我没有登录就会看到的内容。
我的语法是否有任何不正确之处,或者是否设置了我访问的登录页面的方式导致的问题?
答案 0 :(得分:8)
但是,查看表单看起来可能只是在你的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
如果您查看表单,则期望变量“email”和“password”。你有“用户名”和“密码”
无论如何,HTH