如何显示特定的cookie?
我正在使用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 列表中取出第一个元素。