Estou usando o módulo de solicitações (versão 0.10.0 com Python 2.5). Eu descobri como enviar dados para um formulário de login em um site e recuperar a chave de sessão, mas não consigo ver uma maneira óbvia de usar essa chave de sessão em solicitações subsequentes. Alguém pode preencher as reticências no código abaixo ou sugerir outra abordagem?
>>> import requests
>>> login_data = {'formPosted':'1', 'login_email':'[email protected]', '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
fonte
fonte
localhost
, pode haver problemas com o login e outros cookies retornados pelo servidor web, se eles contiverem um valor de propriedade de domínio incorreto. Paralocalhost
, o servidor web deve retornar cookies com propriedade de domínio definida comolocalhost.local
, caso contrário, o cookie não será aplicado à sessão. Nesse caso, use em127.0.0.1
vez delocalhost
as outras respostas ajudam a entender como manter tal sessão. Além disso, desejo fornecer uma classe que mantenha a sessão mantida em diferentes execuções de um script (com um arquivo de cache). Isso significa que um "login" adequado só é executado quando necessário (tempo limite ou nenhuma sessão existe no cache). Também oferece suporte a configurações de proxy em chamadas subsequentes para 'obter' ou 'publicar'.
Ele é testado com Python3.
Use-o como base para seu próprio código. Os seguintes snippets são lançados com GPL v3
Um snippet de código para usar a classe acima pode ter a seguinte aparência:
fonte
requests
módulo. Como você faria para implementá-lo como parte do módulo? ou o que você quer dizer com @ user1602?Verifique minha resposta nesta pergunta semelhante:
python: urllib2 como enviar cookie com solicitação urlopen
EDITAR:
Vejo que recebi alguns votos negativos para minha resposta, mas nenhum comentário explicativo. Suponho que seja porque estou me referindo às
urllib
bibliotecas em vez derequests
. Faço isso porque o OP pede ajudarequests
ou para que alguém sugira outra abordagem.fonte
requests
oferece uma solução simples e de alto nível para um problema que, de outra forma, exigiria 3 bibliotecas para implementar.A documentação diz que
get
recebe umcookies
argumento opcional que permite especificar os cookies a serem usados:dos documentos:
http://docs.python-requests.org/en/latest/user/quickstart/#cookies
fonte
Ao tentar todas as respostas acima, descobri que usar "RequestsCookieJar" em vez do CookieJar regular para solicitações subsequentes corrigiu meu problema.
fonte
snippet para recuperar dados json, protegido por senha
fonte
Salve apenas os cookies necessários e reutilize-os.
fonte
Isso funcionará para você em Python;
fonte