如何显示特定的cookie?

3 投票
1 回答
1349 浏览
提问于 2025-04-15 21:20

我正在使用ActivePython 2.5.1和cookielib这个包来获取网页。

我想从cookiejar中显示一个特定的cookie,而不是显示所有的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']

我知道这应该很简单,但在网上搜索这个没有找到相关的例子。

谢谢。

1 个回答

5

cookiejar 这个东西并不像字典那样可以直接用来查找,只能用来遍历。所以你需要自己写一个查找的方法。

我不太确定你想根据哪个 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 列表中取出第一个元素。

撰写回答