以下是我的脚本:
# -*- 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}]
>>>
返回是一个列表,但它应该是一个字典。
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)
据我所知,get_cookies()
返回一个字典列表,每个字典都包含找到的每个cookie的属性:
http://selenium-python.readthedocs.io/navigating.html#cookies
因为你要求使用driver.get_cookies()
的所有cookie,它会为每个存储的cookie返回一个带有(key,value)对的字典列表。如果您对使用名称name
标识的特定cookie感兴趣,则可以使用driver.get_cookie(name)
按名称请求该特定cookie。如果找到则返回cookie,否则返回None。
即
driver.get_cookies() #returns list of cookie dictionaries
driver.get_cookie(name) # returns a cookie dictionary