Python requests 如何获取第一次GET请求时 Request Headers 中的 Cookies?

如何获取第一次访问网站时 Request Headers 中的 Cookies?
比如访问 http://g.jandan.net/signin 在Fiddler 下抓包查看:

图片描述

requests 中 session.cookies 只能获得 Response Headers 中的 Cookies,无法获得 Request Headers 中的 Cookies。

请问有什么解决的方法?

阅读 34.9k
3 个回答

python内有一个cookielib的包,可以获取cookie。第一次访问都是不带cookie的~~
下面是利用firebug进行测试:
由于之前访问过,所以在浏览器上存有该网站的cookie,将其清除。
图片描述
此时再次访问就是真正意义上的第一次访问,此时再进行访问,抓包如下:
图片描述
网站在对第一次访问的请求中会返回set-cookie,浏览器会将set-cookie进行存储,以后再进行访问时就会带上cookie值。so~第一次访问请求头是没有cookie的,如果你的有,那就是你之前访问过,cookie值一直保留在浏览器内。

import requests

url = 'http://example.com'

resp = requests.get(url=url)
print 'resp', resp.cookies._cookies
print 'req',  resp.request._cookies._cookies

使用requests.Session()

import requests
s= requests.Session()#自动处理cookie
s.get(url)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题