蜘蛛抓取返回 403:是网站封了搜索引擎吗
看到 403,先别急着说“网站封了搜索引擎”。403 只是结果,原因分好几层。
两组实测
知乎首页,Baiduspider 和 Googlebot 都是 403,214 字节,正文为空,server 是 BLB。这是源站或负载均衡直接拒绝,没有挑战页。
Cloudflare 官网,Baiduspider 也是 403,但返回 5,200 字节,标题「Attention Required! | Cloudflare」,还带了 CSP、HSTS 等响应头。这是边缘节点的 Bot 挑战。
同样是 403,一个 214 字节空壳,一个 5KB 有内容的拦截页。处理方式完全不同。
怎么判断在哪一层
看 server。带 cloudflare、AkamaiGHost、AliyunOSS 的,拦截在 CDN。
看响应体。有挑战页、验证页,是 WAF;完全空,可能是源站或安全组。
换 UA 再抓。浏览器 UA 200、蜘蛛 UA 403,是 UA 维度的规则;全部 403,是 IP 或全局策略。
常见原因
WAF 的 Bot 管理默认拦截非浏览器 UA。
CDN 开了防爬,没把搜索引擎加白。
安全组或防火墙按地域封禁,蜘蛛节点在境外。
频率限制,短时间抓太多。
怎么修
在 WAF/CDN 放行目标蜘蛛的 UA 和官方 IP 段。
只放 UA 不够。真实蜘蛛有固定 IP,只放 UA 等于给伪造请求开门。
改完用 蜘蛛模拟抓取 复测,状态码回到 200 只是第一步,正文完整才算通。