我在寫爬蟲的時候,經常會因為點擊瀏覽太多的頁面,而導致很多的cookies累積。
雖然單個Cookie很小,但長期積累可能占用瀏覽器存儲空間,導致瀏覽器運行變慢(尤其對老舊設備)。
而且Cookies(尤其是第三方Cookies)可能被廣告商或數據分析公司用于追蹤你的瀏覽習慣,構建用戶畫像,導致精準廣告推送。
但是有時候手動清除有點麻煩,我想要寫個程序,定時清理cookies.
在Python中,我們可以使用time
模塊來設置定時任務,并使用browsercookie
或browser-cookie3
庫來清除瀏覽器的cookies。
以下是一個示例代碼,展示如何每隔一段時間自動清除網站的cookies的。
安裝依賴
首先,你需要安裝browser-cookie3
庫,它可以幫助你獲取和清除瀏覽器的cookies。
pip install browser-cookie3
示例代碼
import time
import browser_cookie3def clear_cookies():# 獲取所有瀏覽器的cookiescookies = browser_cookie3.load()# 清除所有cookiesfor 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)
代碼說明
-
clear_cookies
函數:這個函數使用browser_cookie3.load()
來獲取當前瀏覽器的所有cookies,然后遍歷這些cookies并調用delete()
方法來刪除它們。 -
run_periodically
函數:這個函數會每隔指定的時間間隔(以秒為單位)調用一次clear_cookies
函數。 -
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 timedef 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,減少跟蹤。
選擇性保留:清理時保留常用網站的登錄狀態(如白名單功能)。