我正在使用 python 请求库。我的应用程序从站点执行简单的获取请求并打印结果。
该站点需要 ntlm 授权。幸运的是,我可以依赖 HttpNtlmAuth,它运行良好。
session = requests.Session()
session.auth = HttpNtlmAuth(domain + "\\" + username,
password,
session)
但是如果应用程序被执行多次——每次我都需要询问用户名和密码。这很不舒服。存储凭据是不可取的。
我可以存储 session 对象本身并多次重复使用它吗?从服务器的角度来看 - 应该没问题。
有没有办法 pickle 和 unpickle session ?
最佳答案
如果您使用 dill
包,您应该能够 pickle pickle
本身失败的 session 。
>>> import dill as pickle
>>> pickled = pickle.dumps(session)
>>> restored = pickle.loads(pickled)
在这里获取 dill
:https://github.com/uqfoundation/dill
实际上,dill
还可以轻松地在重新启动时存储您的 python session ,因此您
可以像这样pickle
你的整个python session :
>>> pickle.dump_session('session.pkl')
然后重新启动 python,从上次中断的地方继续。
Python 2.7.8 (default, Jul 13 2014, 02:29:54)
[GCC 4.2.1 Compatible Apple Clang 4.1 ((tags/Apple/clang-421.11.66))] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import dill as pickle
>>> pickle.load_session('session.pkl')
>>> restored
<requests.sessions.Session object at 0x10c012690>
关于python - 将 python 请求 session 存储在持久存储中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27526353/