找回密码
 立即注册
首页 业界区 科技 selenium之cookies

selenium之cookies

这帜 昨天 16:31
什么是cookies

Cookies 是 Web 服务器存储在用户计算机(通常是浏览器)上的小型文本文件。它们用于记住用户的状态或信息,以便在用户浏览网站的不同页面或稍后再次访问该网站时能够被识别。
Cookies的主要用途包括


  • 会话管理:保持用户的登录状态、购物车内容等。
  • 个性化:存储用户的偏好设置,如语言、主题等。
  • 跟踪: 记录用户的浏览行为,用于网站分析和广告投放。
每一个cookie通常包含以下信息

  • 名称(Name):Cookie 的唯一标识符。
  • 值(Value):存储的实际数据。
  • 域(Domain): 指定 Cookie 对哪个域名有效。
  • 路径(Path):指定 Cookie 对域名下的哪个路径有效。
  • 过期时间(Expiry Date/Time):指定 Cookie 何时失效。如果未设置,则为会话 Cookie,在浏览器关闭时失效。
  • 安全标志(Secure Flag):指示 Cookie 是否只能通过 HTTPS 连接发送。
  • HTTP Only标志(HttpOnly Flag):指示 Cookie 是否只能通过 HTTP(S) 协议访问,而不能通过 JavaScript 访问,有助于防止跨站脚本攻击 (XSS)。
怎么获取、新增、删除cookie
  1. import time
  2. from selenium import webdriver
  3. from selenium.webdriver.common.by import By
  4. from selenium.webdriver.chrome.service import Service
  5. class browser_cookie:
  6.     def __init__(self, path, url):
  7.         self.path = path
  8.         self.service = Service(path)
  9.         self.driver = webdriver.Chrome(service=self.service)
  10.         self.driver.get(url)
  11.     def close(self):
  12.         time.sleep(5)
  13.         self.driver.quit()
  14.     # 获取指定的cookie,get_cookie()
  15.     def get_cookie(self,cookies_name):
  16.         cookie_data = self.driver.get_cookie(cookies_name)
  17.         print(cookie_data)
  18.     # 获取全部的cookies,get_cookies()
  19.     def get_all_cookie(self):
  20.         all_cookies = self.driver.get_cookies()
  21.         # 打印所有的cookies
  22.         for cookie in all_cookies:
  23.             print(cookie)
  24.     # 添加cookies,add_cookie()
  25.     def add_cookie(self, new_cookie):
  26.         self.driver.add_cookie(new_cookie)
  27.     # 删除指定名称的cookies
  28.     def delete_cookie(self,cookies_name):
  29.         self.driver.delete_cookie(cookies_name)
  30.     # 删除全部的cookies
  31.     def delete_all_cookies(self):
  32.         self.driver.delete_all_cookies()
  33. if __name__ == '__main__':
  34.     serve_path = r'D:\Code_Study\driver\chromedriver-win64\chromedriver.exe'
  35.     url = "https://www.baidu.com/"
  36.     browser = browser_cookie(serve_path, url)
  37.     print("下面是查看全部cookies")
  38.     browser.get_all_cookie()
  39.     # 定义要添加的 Cookie
  40.     # 注意,添加之前;domain的值需要和该Cookie的domain属性相匹配的网址;
  41.     new_cookie = {
  42.         'name': 'my_custom_cookie',
  43.         'value': 'my_cookie_value',
  44.         'domain': 'www.baidu.com',
  45.         'path': '/',
  46.         'expiry': int(time.time()) + 3600,  # 设置过期时间为 1 小时后
  47.         'secure': False,
  48.         'httpOnly': False
  49.     }
  50.     browser.add_cookie(new_cookie)
  51.     print("下面是新增了一条cookie进去")
  52.     # 再次获取cookie,可以看到新增的cookie再最上面一条
  53.     print("下面是查看新增的那一条cookies")
  54.     browser.get_cookie(new_cookie["name"])
  55.     # 删除指定cookie
  56.     print("新增的那一条被删除了")
  57.     browser.delete_cookie(new_cookie["name"])
  58.     print("删除后查看一下")
  59.     # 可以看到,输出为None
  60.     browser.get_cookie(new_cookie["name"])
  61.     # 删除全部cookie
  62.     print("删除全部cookie")
  63.     browser.delete_all_cookies()
  64.     # 再次获取cookie进行查询,发现也是None
  65.     print('查看cookie')
  66.     all = browser.get_all_cookie()
  67.     print(all)
  68.     browser.close()
复制代码
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册