我需要从服务器发送的 HTTP 响应中获取 cookie,并将其放入下一个请求的 header 中。我该怎么做?
提前致谢。
最佳答案
你应该使用 cookielib module与 urllib。
它将在请求之间存储 cookie,您可以将它们加载/保存在磁盘上。这是一个例子:
import cookielib
import urllib2
cookies = cookielib.LWPCookieJar()
handlers = [
urllib2.HTTPHandler(),
urllib2.HTTPSHandler(),
urllib2.HTTPCookieProcessor(cookies)
]
opener = urllib2.build_opener(*handlers)
def fetch(uri):
req = urllib2.Request(uri)
return opener.open(req)
def dump():
for cookie in cookies:
print cookie.name, cookie.value
uri = 'http://www.google.com/'
res = fetch(uri)
dump()
res = fetch(uri)
dump()
# save cookies to disk. you can load them with cookies.load() as well.
cookies.save('mycookies.txt')
请注意 NID
和 PREF
的值在请求之间是相同的。如果您省略 HTTPCookieProcessor
,它们将有所不同(urllib2 不会在第二个请求中发送 Cookie
header )。
关于python - 如何在 Python 的 HTTP header 中设置和检索 cookie?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5606083/