我正在使用requests模块(Python 2.5的0.10.0版)。 我已经知道如何将数据提交到网站上的登录表单并检索会话密钥,但是我看不到在后续请求中使用此会话密钥的明显方法。 有人可以在下面的代码中填写省略号或建议其他方法吗?
>>> import requests
>>> login_data = {'formPosted':'1', 'login_email':'me@example.com', 'password':'pw'}
>>> r = requests.post('https://localhost/login.py', login_data)
>>>
>>> r.text
u'You are being redirected <a href="profilePage?_ck=1349394964">here</a>'
>>> r.cookies
{'session_id_myapp': '127-0-0-1-825ff22a-6ed1-453b-aebc-5d3cf2987065'}
>>>
>>> r2 = requests.get('https://localhost/profile_data.json', ...)
看看我在类似问题中的回答:
python: urllib2 how to send cookie with urlopen request
编辑:
我知道我的答案得到了一些反对票,但没有解释性的评论。我猜是因为我指的是
urllib
库而不是requests
。我这样做是因为操作人员需要有关requests
的帮助,或者有人建议另一种方法。可以使用以下方法轻松创建持久会话:
在此之后,继续您的请求,因为您将:
有关会话的详细信息:https://requests.kennethreitz.org/en/master/user/advanced/#session-objects
其他的答案有助于理解如何维护这样的会话。此外,我还想提供一个类,该类在脚本的不同运行期间(使用缓存文件)保持会话的维护。这意味着只有在需要时才执行正确的“登录”(缓存中不存在超时或会话)。此外,它还支持对“get”或“post”的后续调用进行代理设置。
它是用Python3测试的。
使用它作为自己代码的基础。以下代码片段随GPLv3一起发布
使用上述类的代码段可能如下所示:
相关问题 更多 >
编程相关推荐