我正在使用python请求库。我的应用程序从站点执行简单的get请求并打印结果。
该网站需要使用ntlm进行授权。幸运的是,我可以依赖HttpNtlmAuth,它工作正常。
session = requests.Session()
session.auth = HttpNtlmAuth(domain + "\\" + username,
password,
session)
但如果应用程序执行多次 - 每次我都需要输入用户名和密码。这非常不舒服。存储凭据是不可取的。
我可以存储会话对象本身并重复使用几次吗?从服务器的角度来看 - 应该没问题。
有没有办法腌制和取消会话?
答案 0 :(得分:6)
如果您使用dill
软件包,则应该能够在pickle
本身失败的情况下挑选会话。
>>> import dill as pickle
>>> pickled = pickle.dumps(session)
>>> restored = pickle.loads(pickled)
在此处获取dill
:https://github.com/uqfoundation/dill
实际上,dill
也可以让你很容易在重新启动时存储你的python会话,所以你
可以pickle
你的整个python会话:
>>> 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>