12

下面是我的脚本:

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

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

4

3 回答 3

20

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)
于 2012-10-09T21:15:29.140 回答
5

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

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

于 2012-06-30T14:42:40.557 回答
3

因为您要求所有 cookie,driver.get_cookies()所以它会返回一个字典列表,其中包含每个存储的 cookie 的 (key, value) 对。相反,如果您对使用名称标识的特定 cookie 感兴趣,name则可以按名称请求该特定 cookie,driver.get_cookie(name)如果找到则返回 cookie,否则返回 None。

IE

driver.get_cookies() #returns list of cookie dictionaries
driver.get_cookie(name) # returns a cookie dictionary of specified cookie
于 2018-11-06T03:40:20.797 回答