Подтвердить что ты не робот

Использование запросов 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?

4b9b3361

Ответ 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