我正在使用 ActivePython 2.5.1 和 cookielib 包来检索网页。

我想显示来自 cookiejar 的给定 cookie 而不是整个事情:

#OK to display all the cookies
for index, cookie in enumerate(cj):
    print index, '  :  ', cookie

#How to display just PHPSESSID?
#AttributeError: CookieJar instance has no attribute '__getitem__'
print "PHPSESSID: %s" % cj['PHPSESSID']

我敢肯定这很简单,但谷歌搜索并没有返回样本。

谢谢你。

最佳答案

cookiejar 没有类似 dict 的接口(interface),仅支持迭代。所以你必须自己实现一个查找方法。

我不确定您要查找的 cookie 属性。示例,使用名称:

def get_cookie_by_name(cj, name):
    return [cookie for cookie in cj if cookie.name == name][0]

cookie = get_cookie_by_name(cj, "PHPSESSID")

如果您不熟悉 [...] 语法,则它是 list comprehension[0] 然后选择匹配 cookie 列表的第一个元素。

关于python - 如何显示特定的cookie?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2594947/

10-13 09:06