参考资料

  1. 如何设置HTTP响应头进行防爬虫?
  2. 如何设置动态Token头进行防爬虫?
  3. 列举的这些HTTP响应头中,哪些最有效?
  4. Clear-Site-Data如何中断爬虫会话?
  5. 拦截搜索引擎爬虫
  6. 防爬虫策略构
  7. 哪些HTTP响应头可以用于防爬虫?
  8. 如何设置防爬虫

Clear-Site-Data如何中断爬虫会话?

Clear-Site-Data 如何中断爬虫会话?

1. 工作原理

Clear-Site-Data 是一个 HTTP 响应头,用于强制浏览器(或爬虫使用的浏览器引擎)清除存储的会话数据,包括:

  • Cookies(会话凭证)

  • LocalStorage / SessionStorage(本地存储)

  • Cache(缓存)

  • Execution Contexts(执行上下文,如 Service Workers)

当爬虫(如 Selenium、Playwright、Puppeteer)访问带有该响应头的页面时,浏览器会自动清除这些数据,导致:

  • 会话失效(如登录状态丢失)

  • 存储数据被清空(如爬虫依赖的临时数据)

  • 爬取流程中断(需重新登录或初始化)


2. 操作示例

(1)服务器端设置(Node.js / Python / Nginx)

Node.js (Express)  

const express = require('express');
const app = express();

app.get('/clear-session', (req, res) => {
  res.set('Clear-Site-Data', '"cookies", "storage", "cache"');
  res.send('Session data cleared!');
});

app.listen(3000);

Python (Flask)  

from flask import Flask, Response

app = Flask(__name__)

@app.route('/clear-session')
def clear_session():
    response = Response("Session data cleared!")
    response.headers['Clear-Site-Data'] = '"cookies", "storage", "cache"'
    return response

if __name__ == '__main__':
    app.run(port=3000)

Nginx 配置  

location /clear-session {
    add_header Clear-Site-Data '"cookies", "storage", "cache"';
    return 200 "Session data cleared!";
}
(2)爬虫端的影响(以 Selenium 为例)

假设爬虫依赖 localStoragecookies 维持会话:

from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://example.com/login")

# 模拟登录并存储数据
driver.execute_script('localStorage.setItem("token", "abc123")')
driver.add_cookie({"name": "session_id", "value": "xyz456"})

# 访问触发 Clear-Site-Data 的页面
driver.get("https://example.com/clear-session")

# 检查数据是否被清除
print(driver.execute_script('return localStorage.getItem("token")'))  # → null
print(driver.get_cookie("session_id"))  # → None

结果

  • localStoragecookies 被清空,爬虫无法继续操作,需重新登录。


3. 适用场景

  • 反爬虫:强制清除会话数据,使爬虫无法维持登录状态。

  • 安全退出:用户注销时清理浏览器数据。

  • 合规性:满足 GDPR 等数据清除要求。

4. 注意事项

  • 仅对浏览器环境有效:低级别爬虫(如 requests 库)不受影响。

  • 需配合其他防护:如 IP 限制、验证码等增强效果。

通过 Clear-Site-Data,网站可以主动中断依赖浏览器存储的爬虫会话,增加自动化爬取的难度。