2012-06-30 29 views
6

下面是我的脚本:Selenium:为什么我的get_cookies()方法在Python中返回一个列表?

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

driver = webdriver.Firefox() 

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

all_cookies = driver.get_cookies() 

print all_cookies 

和打印结果是:

>>> 
[{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}] 
>>> 

的返回是一个列表,但它应该是一本字典。

+1

字典不会对cookie罐一个正确的存储。可能有多个具有相同名称但不同域/路径的Cookie。 – ThiefMaster

回答

9

Cookie中包含了很多信息不是简单的名称和值的信息,例如到期日期,域名等。因此,简单的键/值对是不够的。如果所有你感兴趣的只是名称和其相应的价值,那么我会做类似如下的东西来构建自己的字典:

# -*- 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) 
相关问题