搜索引擎抓取日志:源站正常而边缘节点异常时应保留哪些证据

📍 WDQWDWQD987AAAAA:216.73.216.24
📱 Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
🔗 /5f4d3c29927c.html
📄

搜索引擎抓取日志:源站正常而边缘节点异常时应保留哪些证据

先给结论:当源站回源正常、边缘节点却对爬虫返回异常时,最该保留的不是一条错误截图,而是能证明“同一时间、同一 URL、源站与边缘结果不同”的成对证据。只有这组对照成立,才能把问题从源站代码排查转向 CDN、WAF 或边缘规则排查。

为什么单看源站日志会得出错误结论

源站正常并不等于爬虫看到的页面正常。爬虫请求通常先到达边缘节点,再由边缘节点决定是否回源。如果边缘层拦截、缓存了错误响应,或者对特定 User-Agent 返回不同状态码,源站日志里可能只留下一次正常回源,甚至完全没有记录。

此时如果只依据源站日志判断“服务正常”,下一步就会错误地去检查页面内容或站点地图。真正需要保留的是边缘侧与源站侧的同一请求记录,让两边能对齐时间、URL 和响应状态。

需要固定下来的证据类型

证据要能回答三个问题:谁在什么时间请求了哪个 URL,边缘返回了什么,源站返回了什么。按这个目标,优先保留以下内容。

一个可执行的对照动作

假设某栏目页在源站返回 200,但爬虫侧显示 403。先不要改代码,做一次带假设的对照:

  1. 用爬虫的 User-Agent 请求边缘地址,记录状态码和响应头。
  2. 用同一 User-Agent 直接请求源站地址,记录状态码和响应头。
  3. 若边缘为 403、源站为 200,则保留这两条记录及请求时间,作为边缘层拦截的证据。
  4. 若两边都是 200,则问题可能出在爬虫侧的解析、渲染或抓取预算,而不是边缘拦截。

这个动作的结果会直接决定下一步:边缘与源站不一致时,去核对 WAF 和 Bot 规则;两边一致时,转向页面渲染和内部链接排查。没有这组对照,后续修改就是在猜。

什么情况下这套证据会失效

一个反例是:边缘节点按地理位置或节点线路返回不同结果。你从办公网络请求到的正常响应,未必代表爬虫实际落到的节点也正常。如果只保留单节点样本,结论就可能不成立。

因此证据里要注明请求来源、节点信息和时间。若无法确认爬虫实际命中的节点,至少保留多个时间点的样本,并标注不确定性,而不是把单次正常当作全局正常。

保留证据之后怎么推进

把边缘日志、源站日志、成对请求样本和规则变更记录放在同一时间轴上,先确认异常是否可复现。可复现时,用最小变更回滚或放行规则验证;不可复现时,继续按时间点采样,避免用一次结果下结论。HTTPS 只说明传输加密,不代表边缘规则不会拦截,也不代表页面一定被收录。不同搜索引擎对边缘异常的响应方式可能不同,需要分别核查,不能用一个引擎的结果推断另一个。

图1 图2

nginx