【发布时间】:2014-03-11 07:29:15
【问题描述】:
我正在尝试打开登录页面 (GET),获取网络服务器提供的 cookie,然后提交用户名和密码对以登录网站 (POST)。
看着this Stackoverflow question/answer,我想我会做以下事情:
import requests
import cookielib
URL1 = 'login prompt page'
URL2 = 'login submission URL'
jar = cookielib.CookieJar()
r = requests.get(URL1, cookies=jar)
r2 = requests.post(URL2, cookies=jar, data="username and password data payload")
但是,在 r 的标头中有一个 set-cookie,但在 jar 对象中并没有改变。事实上,正如链接问题的响应所示,jar 中没有填充任何内容。
我在我的代码中解决了这个问题,方法是使用 headers dict 并在执行 GET 或 POST 之后,使用它来处理 set-cookie header:
headers['Cookie'] = r.headers['set-cookie']
然后在请求方法中传递标头。这是正确的,还是有更好的方法来应用set-cookie?
【问题讨论】:
标签: python python-2.7 cookies python-requests