3

我正在使用 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']

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

谢谢你。

4

1 回答 1

5

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

我不确定您要查找的 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")

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

于 2010-04-07T19:55:37.957 回答