Я использую модуль запросов (версия 0.10.0 с Python 2.5). Я выяснил, как отправить данные в форму входа на веб-сайт и получить ключ сеанса, но я не вижу очевидного способа использовать этот ключ сеанса в последующих запросах. Может ли кто-нибудь заполнить многоточие в приведенном ниже коде или предложить другой подход?
>>> import requests
>>> login_data = {'formPosted':'1', 'login_email':'me@example.com', 'password':'pw'}
>>> r = requests.post('https://localhost/login.py', login_data)
>>>
>>> r.text
u'You are being redirected <a href="profilePage?_ck=1349394964">here</a>'
>>> r.cookies
{'session_id_myapp': '127-0-0-1-825ff22a-6ed1-453b-aebc-5d3cf2987065'}
>>>
>>> r2 = requests.get('https://localhost/profile_data.json', ...)
python
python-requests
ChrisGuest
источник
источник
localhost
могут быть проблемы с логином и другими файлами cookie, возвращаемыми веб-сервером, если они содержат неверное значение свойства домена. Ибоlocalhost
веб-сервер должен возвращать файлы cookie с установленным свойством доменаlocalhost.local
, в противном случае cookie не будет применяться к сеансу. В таком случае используйте127.0.0.1
вместоlocalhost
другие ответы помогают понять, как поддерживать такой сеанс. Кроме того, я хочу предоставить класс, который поддерживает сеанс при различных запусках сценария (с файлом кеша). Это означает, что правильный «вход» выполняется только при необходимости (тайм-аут или сеанс не существует в кеше). Также он поддерживает настройки прокси-сервера для последующих вызовов get или post.
Он протестирован с Python3.
Используйте его как основу для вашего собственного кода. Следующие ниже фрагменты выпущены с GPL v3.
Фрагмент кода для использования указанного выше класса может выглядеть так:
источник
requests
модуль. Как бы вы реализовали его как часть модуля? или как ты имеешь ввиду @ user1602?Посмотрите мой ответ на этот похожий вопрос:
python: urllib2 как отправить cookie с запросом urlopen
РЕДАКТИРОВАТЬ:
Я вижу, что получил несколько отрицательных голосов за свой ответ, но никаких поясняющих комментариев. Я предполагаю это потому, что я имею в виду
urllib
библиотеки, а неrequests
. Я делаю это, потому что ОП просит о помощиrequests
или кого-то предложить другой подход.источник
requests
предлагает простое и высокоуровневое решение проблемы, для реализации которой в противном случае потребовалось бы 3 библиотеки.В документации говорится, что он
get
принимает необязательныйcookies
аргумент, позволяющий указать файлы cookie для использования:из документов:
http://docs.python-requests.org/en/latest/user/quickstart/#cookies
источник
Попробовав все приведенные выше ответы, я обнаружил, что использование «RequestsCookieJar» вместо обычного CookieJar для последующих запросов решило мою проблему.
источник
фрагмент для получения данных json, защищенный паролем
источник
Сохраняйте только необходимые файлы cookie и используйте их повторно.
источник
Это будет работать для вас в Python;
источник