Как отобразить определенный файл cookie? - PullRequest
3 голосов
/ 07 апреля 2010

Я использую ActivePython 2.5.1 и пакет cookielib для извлечения веб-страниц.

Я бы хотел отобразить данный cookie из cookiejar вместо всего этого:

#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 не дал сэмплов.

Спасибо.

1 Ответ

5 голосов
/ 07 апреля 2010

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.

...