Почему мне не удалось войти в систему Coursera с помощью библиотеки запросов?

Код, который я использую, выглядит следующим образом:

import requests

url='https://accounts.coursera.org/api/v1/login'
s=requests.session()
r0=s.get('https://www.coursera.org/')
print r0.cookies.keys()
print 'get homepage'
payload={'email': 'use_your_email', 'password': 'xxx_use_your_password', 'webrequest':'true'}
r= s.post(url, data=payload)

Я получаю сообщение об ошибке Invalid CSRF Token, но на самом деле в r0.cookie.keys() нет данных, кто-нибудь знает, что-то не так в моем коде? если да, то как его изменить? какие-нибудь подсказки? благодарю вас:)

In [31]: r
Out[31]: <Response [400]>

In [32]: r.text
Out[32]: u'Invalid CSRF Token'

некоторые детали: трафик происходит по протоколу https, и кажется, что происходит некоторое перенаправление, не знаете, зачем нужно перенаправление? возможно, это как-то связано с проблемами безопасности.

1 ответ

Вы должны добавить заголовок "x-csrf-token" с действительным токеном

Другие вопросы по тегам