Requests: Sitzung speichern und laden

Erstellt am 2. Apr. 2015  ·  3Kommentare  ·  Quelle: psf/requests

Ich möchte in der Lage sein, eine Sitzung zu speichern und auf die Festplatte zu laden. Ich denke, das bedeutet nur, die Cookies zu speichern und zu laden, aber vielleicht gibt es noch andere Nuancen, die berücksichtigt werden müssen.

Ich interessiere mich für die Verwendung von Robobrowser (https://github.com/jmcarp/robobrowser), der Anfragen umschließt. Ich möchte den Browser zwischen der Ausführung meiner Anwendung beibehalten können, was bedeutet, dass ich die Sitzung speichern und auf die Festplatte laden kann.

Es gibt einen SO-Post, wie das geht. Ich denke, die beliebteste Antwort ist bezeichnenderweise falsch.
http://stackoverflow.com/questions/13030095/how-to-save-requests-python-cookies-to-a-file

Vielen Dank,
Jim

Hilfreichster Kommentar

Am einfachsten ist es, das gesamte session Objekt zu beizen:

import requests, requests.utils, pickle
session = requests.session()
# Make some calls
with open('somefile', 'w') as f:
    pickle.dump(session, f)
with open('somefile') as f:
    session = pickle.load(f)

Alle 3 Kommentare

Am einfachsten ist es, das gesamte session Objekt zu beizen:

import requests, requests.utils, pickle
session = requests.session()
# Make some calls
with open('somefile', 'w') as f:
    pickle.dump(session, f)
with open('somefile') as f:
    session = pickle.load(f)

Als Nachtrag: sieht so aus, als ob Python3 beim Schreiben und Lesen das 'b'-Flag erwartet:

with open('somefile', 'wb') as f:
    pickle.dump(session, f)
with open('somefile', 'rb') as f:
    session = pickle.load(f)

Ich habe versucht, diesen Ansatz zu verwenden, konnte jedoch die Wiederaufnahme der TLS-Sitzung nach dem Neuladen der eingelegten Sitzung nicht zum Laufen bringen. Weiß jemand, wie man dieses Verhalten erreicht?

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen