2012-06-30 11 views
6

Poniżej jest mój skrypt:Selen: Dlaczego moja metoda get_cookies() zwróciła listę w Pythonie?

# -*- coding: UTF-8 -*- 
from selenium import webdriver 

driver = webdriver.Firefox() 

driver.get("http://www.google.com") 

all_cookies = driver.get_cookies() 

print all_cookies 

a wynik druku:

>>> 
[{u'domain': u'.google.com.hk', u'name': u'PREF', u'value': u'ID=999c3b8cf82fb5bc:U=7d4d0968915e2147:FF=2:LD=zh-CN:NW=1:TM=1341066316:LM=1341066316:S=kDqT8587qbZJj1_B', u'expiry': 1404138316, u'path': u'/', u'secure': False}, {u'domain': u'.google.com.hk', u'name': u'NID', u'value': u'61=AbRSUZokdEP3hN79nLdNOWwlF7itUX9-pmFAIBb-ysJqvoi1NBsmOa2wV7ldWgXpYBd_OsPnMxaAPiRsJyCpVbCN882MWNn6DwNm9eD6PTKU2gfDfqrj2EJr6CNVUhI6', u'expiry': 1356877516, u'path': u'/', u'secure': False}] 
>>> 

Zwrot jest lista, ale powinno to być słownik.

+1

Słownik nie będzie odpowiednim miejscem przechowywania słoika z plikami cookie. Mogą istnieć wiele plików cookie o tej samej nazwie, ale różnych domen/ścieżek. – ThiefMaster

Odpowiedz

9

Cookies zawierają dużo więcej informacji niż tylko nazwa i informacje wartości, na przykład data wygaśnięcia, domena itd. Dlatego prosta para klucz/wartość nie jest wystarczająca. Jeśli interesujesz się TYLKO nazwą i odpowiadającą jej wartością, zrobię coś podobnego do poniższego, aby zbudować własny słownik:

# -*- coding: UTF-8 -*- 
from selenium import webdriver 

driver = webdriver.Firefox() 
driver.get("http://www.google.com") 
cookies_list = driver.get_cookies() 
cookies_dict = {} 
for cookie in cookies_list: 
    cookies_dict[cookie['name']] = cookie['value'] 

print(cookies_dict) 
Powiązane problemy