Selenium:为什么我的get_cookies()方法返回Python中的列表?

Selenium:为什么我的get_cookies()方法返回Python中的列表?,python,selenium-webdriver,Python,Selenium Webdriver,以下是我的脚本: # -*- 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':

以下是我的脚本:

# -*- 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}]
>>> 

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

我知道
get\u cookies()
返回一个字典列表,每个dict包含找到的每个cookie的属性:


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)

由于您使用
driver.get\u cookies()
请求所有cookies,因此它会返回一个字典列表,其中存储的每个cookie都有(键、值)对。相反,如果您对使用名称
name
标识的特定cookie感兴趣,则可以使用
driver按名称请求该特定cookie。get_cookie(name)
如果找到该cookie,则返回该cookie,如果没有,则返回无

i、 e


字典不是饼干罐的合适存储空间。可能有多个cookie具有相同的名称,但域/路径不同。字典理解非常适合此情况:
cookies={c[“name”]:c[“value”]用于驱动程序中的c。get_cookies()}
driver.get_cookies() #returns list of cookie dictionaries
driver.get_cookie(name) # returns a cookie dictionary of specified cookie