python - 如何在 Python 的 HTTP header 中设置和检索 cookie?

标签 python cookies http-headers

我需要从服务器发送的 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')

请注意 NIDPREF 的值在请求之间是相同的。如果您省略 HTTPCookieProcessor,它们将有所不同(urllib2 不会在第二个请求中发送 Cookie header )。

关于python - 如何在 Python 的 HTTP header 中设置和检索 cookie?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5606083/

相关文章:

python - PySpark:org.apache.spark.sql.AnalysisException:属性名称...包含 ",;{}()\n\t="中的无效字符。请使用别名重命名它

python - matplotlib 和 tkinter 交互 : How to select the defined Frame in Tkinter?

python - f2py 回调上的段错误

node.js - 我可以将 cookie 添加到 webpack 开发服务器代理吗?

jquery+wcf。基本身份验证问题

Python:写入文件并将其读回

django - 测试使用 cookies/session 的 django 网络应用程序

python 的请求没有正确处理 cookies?

javascript - HTTP header 未通过 fetch() 发送

http - 如何在 ExpressJS 中删除 X-Powered-By