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
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?
Hilfreichster Kommentar
Am einfachsten ist es, das gesamte
session
Objekt zu beizen: