Requests: Сохранить и загрузить сеанс

Созданный на 2 апр. 2015  ·  3Комментарии  ·  Источник: psf/requests

Я хотел бы иметь возможность сохранять и загружать сеанс на диск. Я думаю, это означает просто сохранение и загрузку файлов cookie, но, возможно, есть и другие нюансы, которые необходимо будет учесть.

Мне интересно использовать Robobrowser (https://github.com/jmcarp/robobrowser), который обертывает запросы. Я хотел бы иметь возможность сохранять браузер между запуском моего приложения, что означает возможность сохранять и загружать сеанс на диск.

Есть сообщение SO о том, как это сделать. Я думаю, что наиболее популярный ответ неверен.
http://stackoverflow.com/questions/13030095/how-to-save-requests-python-cookies-to-a-file

Спасибо,
Джим

Самый полезный комментарий

Самый простой способ - это просто засолить весь объект 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)

Все 3 Комментарий

Самый простой способ - это просто засолить весь объект 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)

В качестве дополнения: похоже, Python3 ожидает флаг 'b' во время записи и чтения:

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

Я пробовал использовать этот подход, однако мне не удалось возобновить работу сеанса TLS после перезагрузки маринованного сеанса. Кто-нибудь знает, как добиться такого поведения?

Была ли эта страница полезной?
0 / 5 - 0 рейтинги