如何从cookiejar生成Cookie头?
我有一个 CookieJar
实例,想从里面获取一个格式正确的 Cookie:
HTTP 头信息。
我查看了一下 Python 模块的源代码,发现大概有三分之四的函数和二十行代码,我想找一个更优雅的解决方案。
注意:我真的想要这个头信息,而不是用这些 cookies 发起一个 urllib
请求。我知道有 HTTPCookieProcessor
,但这不符合我的需求(见上文)。
补充说明:如果我能从 cookiejar 中获取到一个单独的 Cookie
对象(这是不同的事情,属于不同的模块),那么就可以像这样简单地使用 .output(header="Cookie:")
。不过,
cookielib 和 Cookie 模块之间并没有相互依赖。
1 个回答
0
因为Python使用的是一种叫做“鸭子类型”的方式,你可以自己创建一个对象来传递给add_cookie_header
。文档里甚至列出了你需要实现的方法,比如get_full_url
、get_host
等等。不过,其实创建一个临时的urllib.request.Request
对象,然后从中获取cookie,可能会更简单,接着你就可以按照自己的需求处理这些cookie。
当然,你可以调用一些内部方法,比如_cookie_attrs
,但我想你应该知道这样做为什么不好——依赖这些实现细节是很脆弱的做法。