网站为什么打不开:403、地区限制与反爬

2026-11-11

同一个网址,你能打开而抓取程序打不开,通常不是网站坏了。解释 403、地区限制、JS 渲染与 DNS 这四种常见原因。

有时候你在浏览器里能正常打开一个网站,但用程序去请求却失败。这不是网站坏了,而是它的防护策略在起作用。天耙在抓取资料时经常遇到这类情况,这里把四种原因说清楚。

一、403:识别出你不是浏览器

最常见的一种。服务器看到请求头里没有正常的浏览器标识、或者来自机房 IP 段,就直接返回 403。Cloudflare 这类防护服务还会先给一个验证页面,通过之后才放行。

判断方法:用浏览器打开正常,用命令行请求返回 403,基本就是这一类。这不是网站出错,是它的策略选择。我们的处理方式是记录失败,不猜测内容。

二、地区限制:返回 200,但内容是"不可用"

有些海外服务会对特定地区返回一个提示页,HTTP 状态仍是 200。标题往往是"在你所在地区不可用"。如果只看状态码,会误以为抓取成功,实际上什么信息都没拿到。

这类站点在天耙的后台被单独标记为"地区受限",页面照常展示人工撰写的介绍,但不会声称已核实,也不进入索引。

三、JS 渲染:拿到的是空壳

现代前端框架生成的页面,HTML 里只有一个空的根节点,内容由 JavaScript 在浏览器里绘制。纯请求方式拿到的就是那个空壳,标题可能是默认值,正文一片空白。

判断方法:查看网页源代码,如果 body 里几乎没内容,而浏览器里显示正常,就是这一类。处理它需要浏览器渲染,成本比普通抓取高一个量级。

四、DNS 与证书

打不开也可能是解析问题:域名没有 A 记录、解析到了被墙的地址、证书过期或证书链不完整。这类错误在浏览器里表现为"无法访问此网站"或"您的连接不是私密连接",比较容易识别。

你应该怎么用这些信息

如果你在收藏一个网站时遇到打不开,先按顺序排查:换网络试一次、看是不是要登录、看源代码里有没有内容、确认域名是否还在正常解析。四步走完,基本能判断是网站的问题还是你的网络问题。

我们不会因为一个站点抓取失败就把它写成"正常可用"。这条原则看起来保守,但它是目录站可信度的基础。