Python-Requests und permanente Sitzungen
Ich bin mit dem Anfragen - Modul (version 0.10.0 mit Python 2.5).
Ich habe herausgefunden, wie zum senden von Daten zu einem login Formular auf einer website und das abrufen der session-key, aber ich kann nicht sehen, eine offensichtliche Möglichkeit zur Verwendung dieser session-key in der nachfolgenden Anforderungen.
Kann jemand füllen Sie die Ellipse in den code unten ein oder schlagen Sie einen anderen Ansatz?
>>> 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', ...)
InformationsquelleAutor ChrisGuest | 2012-10-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie ganz einfach erstellen Sie eine dauerhafte Sitzung mit:
Danach weiter mit Ihren Anfragen, als würden Sie:
Weitere Sitzungen: http://docs.python-requests.org/en/latest/user/advanced/#session-objects
Können Gurke.dump session-cookies, um eine Datei wie eine Gurke.dump(session.cookies._cookies, Datei) und Gurke.Last-Sitzung wie folgt cookies = pickle.load(Datei) cj = - Anfragen.cookies.RequestsCookieJar() cj._cookies = cookies und session.cookies = cj
was ist, wenn ich mit einbeziehen proxy?
InformationsquelleAutor Anuj Gupta
Schauen Sie sich meine Antwort in dieser ähnlichen Frage:
python: urllib2 so senden Sie ein cookie mit urlopen Anfrage
EDIT:
Ich sehe, habe ich mittlerweile ein paar downvotes für meine Antwort, aber keine Erklärung Kommentare. Ich vermute, es ist weil ich beziehe mich auf die
urllib
Bibliotheken stattrequests
. Ich Tue das, weil die OP um Hilfe bittet mitrequests
oder für jemanden zu empfehlen, einen anderen Ansatz.Als OP kann ich sagen, dass deine Antwort stellt eine sinnvolle alternative sein. Wenn auch nur, um zu demonstrieren, dass
requests
bietet eine einfache und high-level-Lösung für ein problem, dass sonst nehmen 3-Bibliotheken zu implementieren.InformationsquelleAutor Morten Jensen
die anderen Antworten helfen zu verstehen, wie zu halten, wie eine Sitzung. Außerdem, ich möchte einer Klasse hält, die Sitzung im Laufe der verschiedenen Auflagen von einem Skript (mit einer cache-Datei). Dies bedeutet eine richtige "login" wird nur ausgeführt, wenn erforderlich (Zeitüberschreitung oder keine session im cache vorhanden ist). Es unterstützt auch proxy-Einstellungen über die folgenden Aufrufe von 'get' oder 'post'.
Es ist getestet mit Python ist3.
Verwenden Sie es als Grundlage für Ihren eigenen code. Die folgenden snippets sind release mit der GPL v3
Einen code-snippet für die Verwendung der obigen Klasse kann wie folgt Aussehen:
InformationsquelleAutor DomTomCat
Die Dokumentation sagt, dass
get
nimmt eine optionalecookies
argument, so dass Sie festlegen, cookies zu verwenden:aus der docs:
http://docs.python-requests.org/en/latest/user/quickstart/#cookies
InformationsquelleAutor dm03514
Beim Versuch, alle Antworten oben, ich fand, dass mit RequestsCookieJar anstelle der regulären CookieJar für nachfolgende Anforderungen fixiert mein problem.
InformationsquelleAutor Jim Chertkov
snippet zum abrufen von json-Daten, mit einem Passwort geschützte
InformationsquelleAutor NiL
Wird dies für Sie arbeiten in Python;
InformationsquelleAutor Dasitha Abeysinghe