先来看selenium对cookies的几种操作方法
- 获取cookies
from selenium import webdriver
driver = webdriver.Chrome()
driver.get_cookise() # 获取cookies
driver.get_cookies(name) # 获取指定的cookies
- 删除cookies
driver.delete_all_cookies() # 删除所有的cookies
driver.delete_cookies(name) # 删除指定的cookies
3.添加cookies
driver.add_cookie(dict) # 添加cookies
利用add_cookies()方法实现免登:先看add_cookies()源码
def add_cookie(self, cookie_dict):
"""
Adds a cookie to your current session.
:Args:
- cookie_dict: A dictionary object, with required keys - "name" and "value";
optional keys - "path", "domain", "secure", "expiry"
Usage:
driver.add_cookie({'name' : 'foo', 'value' : 'bar'})
driver.add_cookie({'name' : 'foo', 'value' : 'bar', 'path' : '/'})
driver.add_cookie({'name' : 'foo', 'value' : 'bar', 'path' : '/', 'secure':True})
"""
self.execute(Command.ADD_COOKIE, {'cookie': cookie_dict})
1.add_cookies()方法接收一个字典对象,并且包含name和value两个必须参数,另外其他可选参数
-
domain:服务器域名
-
expiry:Cookie有效终止日期
-
path:Path属性定义了Web服务器上哪些路径下的页面可获取服务器设置的Cookie
-
httpOnly:防脚本攻击
-
secure:在Cookie中标记该变量,表明只有当浏览器和Web Server之间的通信协议为加密认证协议时
看下driver.get_cookies()返回来的cookies
from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get("https:/www.baidu.com")
time.sleep(2)
cookies = driver.get_cookise()
print(cookies)
[{'domain': '.baidu.com', 'httpOnly': False, 'name': 'H_PS_PSSID', 'path': '/', 'secure': False, 'value': '1424_21124_29567_29221_28701'}, {'domain': '.baidu.com', 'expiry': 1604992419.804755, 'httpOnly': False, 'name': 'BAIDUID', 'path': '/', 'secure': False, 'value': '2A6E0F8C263C683AEA1BFF21DE639859:FG=1'}, {'domain': '.baidu.com', 'expiry': 3720940066.804666, 'httpOnly': False, 'name': 'BIDUPSID', 'path': '/', 'secure': False, 'value': '2A6E0F8C263C683A7B6EE4EF1E57E39A'}, {'domain': '.baidu.com', 'httpOnly': False, 'name': 'delPer', 'path': '/', 'secure': False, 'value': '0'}, {'domain': '.baidu.com', 'expiry': 3720940066.804696, 'httpOnly': False, 'name': 'PSTM', 'path': '/', 'secure': False, 'value': '1573456418'}, {'domain': '.baidu.com', 'expiry': 1573542820.41061, 'httpOnly': False, 'name': 'BDORZ', 'path': '/', 'secure': False, 'value': 'B490B5EBF6F3CD402E515D22BCDA1598'}, {'domain': 'www.baidu.com', 'expiry': 1574320420, 'httpOnly': False, 'name': 'BD_UPN', 'path': '/', 'secure': False, 'value': '12314753'}, {'domain': 'www.baidu.com', 'httpOnly': False, 'name': 'BD_HOME', 'path': '/', 'secure': False, 'value': '0'}]
cookies 是一个列表,包含了cookies的name和对应的value值以及domain、httpOnly、secure、path几个键,因为没有登录状态,所以有的name是没有expire过期时间这个键的。
网友评论