Requests: 保存和加载会话

创建于 2015-04-02  ·  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 等级