使用请求模块,如何处理请求响应中的“ set-cookie”?
我试图打开登录页面(GET),获取网络服务器提供的cookie,然后提交用户名和密码对以登录网站(POST)。
看着这个Stackoverflow问题/答案,我认为我会做以下事情:
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
链接问题的回答将表明没有内容被填充。
我在代码中通过使用标头字典来解决此问题,并在执行GET或POST之后使用此set-cookie
标头处理:
headers['Cookie'] = r.headers['set-cookie']
然后在请求方法中传递标头。这是正确的,还是有更好的方法来应用set-cookie
?