本文目录导读:

在Python中删除指定Cookie,具体方法取决于你使用的HTTP库,以下是几种常见场景的实现方式:
使用 requests 库
import requests
# 创建一个会话
session = requests.Session()
# 先设置一个Cookie(模拟已有Cookie)
session.cookies.set('username', 'john', domain='.example.com')
# 方法1:直接删除指定Cookie
del session.cookies['username']
# 方法2:使用set方法设置过期时间(让Cookie失效)
session.cookies.set('username', '', expires=0, domain='.example.com')
# 验证删除结果
if 'username' in session.cookies:
print("Cookie仍然存在")
else:
print("Cookie已删除")
完整示例:
import requests
from http.cookiejar import Cookie
session = requests.Session()
# 模拟已有的一些Cookie
session.cookies.set('session_id', 'abc123', domain='.example.com')
session.cookies.set('user_token', 'xyz789', domain='.example.com')
session.cookies.set('theme', 'dark', domain='.example.com')
print("删除前所有Cookies:", list(session.cookies))
# 删除指定Cookie 'session_id'
del session.cookies['session_id']
print("删除后所有Cookies:", list(session.cookies))
# 输出: [Cookie(version=0, name='user_token', ...), Cookie(version=0, name='theme', ...)]
使用 Selenium WebDriver
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://example.com")
# 删除指定名称的Cookie
driver.delete_cookie("session_id")
# 或者删除所有Cookie
# driver.delete_all_cookies()
driver.quit()
使用 Flask 框架(服务端)
from flask import Flask, make_response
app = Flask(__name__)
@app.route('/delete-cookie')
def delete_cookie():
resp = make_response("Cookie已删除")
# 通过设置过期时间删除Cookie
resp.set_cookie('username', '', expires=0)
# 或者设置max_age=0
# resp.set_cookie('username', '', max_age=0)
return resp
if __name__ == '__main__':
app.run()
使用 http.cookiejar(底层API)
from http.cookiejar import CookieJar
from urllib.request import HTTPCookieProcessor, build_opener
# 创建Cookie Jar
cookie_jar = CookieJar()
opener = build_opener(HTTPCookieProcessor(cookie_jar))
# 模拟添加一些Cookie(实际项目中通过请求获取)
opener.open("http://example.com")
print("删除前:", list(cookie_jar))
# 删除所有Cookie
cookie_jar.clear()
# 或者删除指定域名的所有Cookie
# cookie_jar.clear(domain=".example.com")
# 或者删除指定名称的Cookie(需要遍历)
for cookie in list(cookie_jar):
if cookie.name == "session_id":
cookie_jar.clear(domain=cookie.domain, path=cookie.path, name=cookie.name)
print("删除后:", list(cookie_jar))
使用 httpx 库(现代HTTP库)
import httpx
# 创建客户端
with httpx.Client() as client:
# 模拟添加Cookie
client.cookies.set("token", "abc123", domain="example.com")
print("删除前:", client.cookies)
# 删除指定Cookie
del client.cookies["token"]
print("删除后:", client.cookies)
注意事项
- 删除时需要指定正确的domain和path,否则可能无法找到对应的Cookie
- 调用delete前确保Cookie存在,否则会抛出KeyError
- 在浏览器环境中(如Selenium),删除Cookie后需要刷新页面才能生效
- 服务端删除Cookie实际上是设置一个过期的Cookie,让浏览器自动清除
选择哪种方法取决于你的具体使用场景:
- 客户端请求:
requests或httpx - 浏览器自动化:Selenium
- 服务端响应:Flask/Django等框架
- 底层控制:
http.cookiejar
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播