Requests: Enregistrer et charger la session

Créé le 2 avr. 2015  ·  3Commentaires  ·  Source: psf/requests

J'aimerais pouvoir enregistrer et charger une session sur le disque. Je pense que cela signifie simplement enregistrer et charger les cookies, mais il y a peut-être d'autres nuances qui devraient être incluses.

Je suis intéressé par l'utilisation de Robobrowser (https://github.com/jmcarp/robobrowser) qui encapsule les demandes. J'aimerais pouvoir conserver le navigateur entre l'exécution de mon application, ce qui signifie pouvoir enregistrer et charger la session sur le disque.

Il y a un post SO sur la façon de faire cela. Je pense que la réponse la plus populaire est fausse.
http://stackoverflow.com/questions/13030095/how-to-save-requests-python-cookies-to-a-file

Merci,
Jim

Commentaire le plus utile

La chose la plus simple à faire est de décaper l'ensemble de l'objet 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)

Tous les 3 commentaires

La chose la plus simple à faire est de décaper l'ensemble de l'objet 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)

En complément : on dirait que Python3 attend le drapeau 'b' lors de l'écriture et de la lecture :

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

J'ai essayé d'utiliser cette approche, mais je n'ai pas pu faire fonctionner la reprise de la session TLS après avoir rechargé la session décapée. Est-ce que quelqu'un sait comment obtenir ce comportement ?

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

justlurking picture justlurking  ·  3Commentaires

8key picture 8key  ·  3Commentaires

iLaus picture iLaus  ·  3Commentaires

remram44 picture remram44  ·  4Commentaires

avinassh picture avinassh  ·  4Commentaires