Scraper(爬虫)异常流量排查与处理记录
背景
2026 年 8 月,网站流量出现异常:GA4 Pageview 明显增加、广告 Impression 未按相同比例增加,且部分数据页面访问量上升。请求来自持续变化的数据中心和住宅网络 IP,单个 IP 的访问量不一定很高。
结合服务器 access log、Cloudflare 与 GA4 数据,确认其中存在比较明显的自动化数据抓取行为。
访问特征
可疑请求有一组稳定的共同特征:
- Linux、X11、Chrome。
- IP 持续轮换,访问页面较分散。
- 打开页面后数秒内继续调用前端 API。
这表明至少部分 scraper 并非只下载 HTML,而是运行完整或接近完整的浏览器环境:
访问页面
↓
执行前端代码
↓
调用相关 API
这也解释了流量会进入 GA4。Pageview 明显增加但广告 Impression 不成比例,说明这些自动化浏览器可能执行了 JavaScript,却没有像正常用户一样完整加载、等待或显示广告。
Cloudflare Challenge 的效果与局限
先后使用过 Cloudflare Managed Challenge 与 Interactive Challenge。Interactive Challenge 的流程是:
请求
↓
Challenge
↓
失败 → 拒绝
成功 → 允许继续访问
实测 Challenge Solve Rate 约 2%。这表示 Challenge 挡住了绝大多数尝试,但无法根除后续垃圾流量:大规模 scraper 若有 1,000 次尝试,即使只有约 20 次成功,成功的 session 仍可继续访问很多页面。
日志也观察到过以下链路:
Cloudflare 发出 Interactive Challenge
↓
约几十秒
↓
同一个 IP / Browser 成功访问网站
↓
几秒以后
↓
继续调用前端 API
因此只能确认少量 scraper session 能通过 Interactive Challenge;不能据此判断 Challenge 本身已被破解。可能原因包括完整浏览器自动化、人工参与或第三方 solving service,日志无法确定具体方式。
改为直接 Block
IP 轮换太快,逐个封锁没有实际意义。异常流量中较稳定的共同特征是 Linux + X11,因此 Cloudflare 规则调整为:
Linux
+
X11
+
排除 Android
+
排除 Verified Bot
→ BLOCK
这条规则不以具体 IP 为主要条件。
效果验证
Block 后,GA4 中异常 Linux 流量很快下降。期间做过一次对照:
Block
↓
改成 Interactive Challenge
↓
异常流量重新出现
↓
改回 Block
↓
异常流量再次明显下降
结论:对当前这批 scraper,直接 Block 比 Interactive Challenge 有效。Challenge 允许少量成功的 session 继续访问;Block 则会直接拒绝符合条件的请求。
Residential Proxy 的迹象
可疑流量同时包含两种来源:
自动浏览器 → 数据中心 / Proxy IP → 大量轮换
自动浏览器 → Residential Proxy → 大量住宅网络 IP
住宅代理的 IP 看起来像普通家庭用户,但大量不同住宅 IP 表现出相似的 Linux/Chrome 特征与数据访问行为,不像正常用户。
因此不应把 IP、ISP 或 ASN Block 作为长期主要方案,以免误伤真实用户。
为什么仍然暴露 Linux
User-Agent 容易修改,但伪装完整 browser fingerprint 更难。可能的 worker 架构为:
Linux Server / Container
↓
Chromium
↓
Browser Automation
↓
Proxy
↓
网站
在此前可正常抓取时,无需改变环境。即使 User-Agent 改成 Windows,浏览器仍可能通过 Client Hints、JavaScript API、字体、WebGL、屏幕、时区、TLS/HTTP 等暴露真实环境。
当前策略与后续观察
目前继续使用 Linux + X11、排除 Android 与 Verified Bot 的 Block 规则,暂不扩大范围:
- 对当前 scraper 效果明显,异常 Linux 流量已下降。
- 暂未发现明显的正常流量损失。
- 无需追踪不断变化的 IP,也避免因住宅代理误封正常 ISP。
接下来观察 scraper 是否切换为 Windows 或 macOS fingerprint。若有类似异常访问重新出现,再组合比对:
Browser / OS
+
User-Agent
+
网络来源
+
访问内容与频率
+
Referer
+
前端执行行为
总结
不要把 IP 当作识别 scraper 的主要依据。现代 scraper 可以使用数据中心代理、住宅代理、大量轮换 IP,并运行完整浏览器与 JavaScript。
更有效的做法是综合浏览器与操作系统特征、访问行为与频率、网络来源、前端执行行为,找出稳定且误伤较小的共同特征再 Block。目前先以 Linux/X11 控制这批异常流量,并持续观察其 fingerprint 是否改变。
