J'utilise le module de requêtes (version 0.10.0 avec Python 2.5). J'ai trouvé comment soumettre des données à un formulaire de connexion sur un site Web et récupérer la clé de session, mais je ne vois pas de moyen évident d'utiliser cette clé de session dans les demandes ultérieures. Quelqu'un peut-il remplir les points de suspension dans le code ci-dessous ou suggérer une autre approche?
>>> 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
la source
la source
localhost
, il peut y avoir des problèmes de connexion et d'autres cookies renvoyés par le serveur Web, s'ils contiennent une valeur de propriété de domaine incorrecte. Pourlocalhost
, le serveur Web doit renvoyer les cookies avec la propriété de domaine définie surlocalhost.local
, sinon le cookie ne sera pas appliqué à la session. Dans ce cas, utilisez à la127.0.0.1
place delocalhost
les autres réponses aident à comprendre comment maintenir une telle session. De plus, je souhaite fournir une classe qui maintient la session sur différentes exécutions d'un script (avec un fichier cache). Cela signifie qu'une "connexion" correcte n'est effectuée que lorsque cela est nécessaire (délai d'expiration ou aucune session n'existe dans le cache). Il prend également en charge les paramètres de proxy lors des appels suivants pour «obtenir» ou «publier».
Il est testé avec Python3.
Utilisez-le comme base pour votre propre code. Les extraits de code suivants sont publiés avec la GPL v3
Un extrait de code pour utiliser la classe ci-dessus peut ressembler à ceci:
la source
requests
module. Comment procéderiez-vous pour l'implémenter dans le cadre du module? ou comment voulez-vous dire @ user1602?Découvrez ma réponse dans cette question similaire:
python: urllib2 comment envoyer un cookie avec une requête urlopen
ÉDITER:
Je vois que j'ai reçu quelques votes négatifs pour ma réponse, mais aucun commentaire explicatif. Je suppose que c'est parce que je parle des
urllib
bibliothèques plutôt que derequests
. Je fais cela parce que le PO demande de l'aiderequests
ou que quelqu'un suggère une autre approche.la source
requests
serait-ce que pour démontrer que cela offre une solution simple et de haut niveau à un problème qui prendrait autrement 3 bibliothèques à implémenter.La documentation indique que cela
get
prend uncookies
argument vous permettant de spécifier les cookies à utiliser:à partir de la documentation:
http://docs.python-requests.org/en/latest/user/quickstart/#cookies
la source
En essayant toutes les réponses ci-dessus, j'ai trouvé que l'utilisation de "RequestsCookieJar" au lieu du CookieJar régulier pour les demandes ultérieures a résolu mon problème.
la source
extrait de code pour récupérer les données json, protégé par mot de passe
la source
Enregistrez uniquement les cookies nécessaires et réutilisez-les.
la source
Cela fonctionnera pour vous en Python;
la source