2010-04-07 52 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