Использование запросов Python: сеансы, файлы cookie и POST
Я пытаюсь очистить некоторые данные о продажах, используя StubHub API. Пример этих данных:
https://sell.stubhub.com/sellapi/event/4236070/section/null/seatmapdata
Вы заметите, что если вы попытаетесь посетить этот URL-адрес без входа в stubhub.com, это не сработает. Вам нужно сначала войти в систему.
Как только я войду в свой веб-браузер, я открою URL-адрес, который я хочу очистить на новой вкладке, а затем воспользуемся следующей командой для извлечения очищенных данных:
r = requests.get('https://sell.stubhub.com/sellapi/event/4236070/section/null/seatmapdata')
Однако, как только сеанс браузера истечет через десять минут, я получаю эту ошибку:
<FormErrors>
<FormField>User Auth Check</FormField>
<ErrorMessage>
Either is not active or the session might have expired. Please login again.
</ErrorMessage>
Я думаю, что мне нужно реализовать идентификатор сеанса с помощью файла cookie, чтобы моя аутентификация была жива и хорошо.
Документация документации Requests довольно ужасна для тех, кто раньше никогда не делал этого, поэтому я надеялся, что вы, возможно, поможете вам.
Пример, предоставленный запросами:
s = requests.Session()
s.get('http://httpbin.org/cookies/set/sessioncookie/123456789')
r = s.get("http://httpbin.org/cookies")
print r.text
# '{"cookies": {"sessioncookie": "123456789"}}'
Честно говоря, я не могу сделать головы или хвосты. Как сохранить cookie между запросами POST?
Ответы
Ответ 1
Я не знаю, как работает stubhub api, но обычно он должен выглядеть следующим образом:
s = requests.Session()
data = {"login":"my_login", "password":"my_password"}
url = "http://example.net/login"
r = s.post(url, data=data)
Теперь ваша сессия содержит файлы cookie, предоставленные формой входа. Чтобы получить доступ к файлам cookie этого сеанса, просто используйте
s.cookies
Любые другие действия, подобные другим запросам, будут иметь этот файл cookie