我在写爬虫的时候,经常会因为点击浏览太多的页面,而导致很多的cookies累积。

虽然单个Cookie很小,但长期积累可能占用浏览器存储空间,导致浏览器运行变慢(尤其对老旧设备)。

而且Cookies(尤其是第三方Cookies)可能被广告商或数据分析公司用于追踪你的浏览习惯,构建用户画像,导致精准广告推送。

但是有时候手动清除有点麻烦,我想要写个程序,定时清理cookies.

在Python中,我们可以使用time模块来设置定时任务,并使用browsercookie或browser-cookie3库来清除浏览器的cookies。

以下是一个示例代码,展示如何每隔一段时间自动清除网站的cookies的。

安装依赖

首先,你需要安装browser-cookie3库,它可以帮助你获取和清除浏览器的cookies。

pip install browser-cookie3

示例代码

import time
import browser_cookie3

def clear_cookies():
    # 获取所有浏览器的cookies
    cookies = browser_cookie3.load()
    
    # 清除所有cookies
    for cookie in cookies:
        cookie.delete()
    
    print("Cookies cleared!")

def run_periodically(interval, function):
    while True:
        function()
        time.sleep(interval)

# 每隔60秒清除一次cookies
run_periodically(60, clear_cookies)

代码说明

  1. clear_cookies函数:这个函数使用browser_cookie3.load()来获取当前浏览器的所有cookies,然后遍历这些cookies并调用delete()方法来删除它们。

  2. run_periodically函数:这个函数会每隔指定的时间间隔(以秒为单位)调用一次clear_cookies函数。

  3. run_periodically(60, clear_cookies):这行代码设置了每隔60秒调用一次clear_cookies函数。

注意事项

  • 该代码会清除所有浏览器的cookies。如果你只想清除特定网站的cookies,可以在clear_cookies函数中添加过滤条件。
  • 该代码需要在有浏览器环境的机器上运行,因为它依赖于浏览器的cookies存储。
  • 如果你使用的是无头浏览器(如Selenium),你可能需要使用Selenium的API来管理cookies。

使用Selenium清除cookies的示例

如果你使用的是Selenium,可以使用以下代码来清除cookies:

from selenium import webdriver
import time

def clear_cookies(driver):
    driver.delete_all_cookies()
    print("Cookies cleared!")

def run_periodically(interval, function, driver):
    while True:
        function(driver)
        time.sleep(interval)

# 启动浏览器
driver = webdriver.Chrome()

# 每隔60秒清除一次cookies
run_periodically(60, clear_cookies, driver)

除了python的写法,也可以手动清除:

定期清理:手动删除Cookies或设置浏览器自动清除(如Chrome的“退出时清除”功能)。

使用隐私模式:无痕浏览(如Chrome的Incognito)不保存Cookies。

限制第三方Cookies:在浏览器设置中禁用第三方Cookies,减少跟踪。

选择性保留:清理时保留常用网站的登录状态(如白名单功能)。

更多推荐