Me gustaría poder guardar y cargar una sesión en el disco. Creo que esto significa simplemente guardar y cargar las cookies, pero tal vez haya otros matices que deberían incluirse.
Estoy interesado en usar Robobrowser (https://github.com/jmcarp/robobrowser) que envuelve las solicitudes. Me gustaría poder mantener el navegador entre la ejecución de mi aplicación, lo que significa poder guardar y cargar la sesión en el disco.
Hay una publicación SO sobre cómo hacer esto. Creo que, de manera reveladora, la respuesta más popular es incorrecta.
http://stackoverflow.com/questions/13030095/how-to-save-requests-python-cookies-to-a-file
Gracias,
Jim
Lo más fácil de hacer es encurtir todo el objeto session
:
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)
Como apéndice: parece que Python3 espera la marca 'b' durante la escritura y la lectura:
with open('somefile', 'wb') as f:
pickle.dump(session, f)
with open('somefile', 'rb') as f:
session = pickle.load(f)
Intenté usar este enfoque, sin embargo, no pude hacer que la reanudación de la sesión TLS funcionara después de volver a cargar la sesión en escabeche. ¿Alguien sabe cómo lograr este comportamiento?
Comentario más útil
Lo más fácil de hacer es encurtir todo el objeto
session
: