2010-04-07 53 views
2

我正在使用ActivePython 2.5.1和cookielib包来检索网页。如何显示特定的cookie?

我想从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'] 

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

谢谢。

回答

4

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") 

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

+0

感谢您的提示。 – Gulbahar 2010-04-15 15:34:35