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

Rio*_*_Ma 11 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
Run Code Online (Sandbox Code Playgroud)

打印结果是:

>>> 
[{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}]
>>> 
Run Code Online (Sandbox Code Playgroud)

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

Jos*_*rns 18

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)
Run Code Online (Sandbox Code Playgroud)

  • 字典理解非常适合:`cookies = { c["name"]: c["value"] for c in driver.get_cookies() }` (3认同)

AJJ*_*AJJ 5

我知道这会get_cookies()返回一个字典列表,每个字典包含找到的每个cookie的属性:

http://selenium-python.readthedocs.io/navigating.html#cookies