如何屏蔽百度蜘蛛:robots.txt 与 HTTP 请求拦截

robots.txt 用于请百度蜘蛛停止抓取;HTTP 拦截规则用于拒绝匹配的请求。先按目标选择方法,再验证结果。仅凭 Baiduspider 这个 UA 名称,不能确认请求来自百度。

Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)

一览

类型搜索引擎爬虫
运营方百度
用途百度搜索的网页抓取
版本2.0
robots.txt 标识Baiduspider
如何核验反向 DNS 主机名以 .baidu.com 或 .baidu.jp 结尾并能正向解析回同一 IP;百度不公布 IP 段。

在 robots.txt 里放行或屏蔽

禁止 Baiduspider 抓取全站

User-agent: Baiduspider
Disallow: /

重新放行

User-agent: Baiduspider
Allow: /

如何通过 robots.txt 屏蔽百度蜘蛛

把上方 Baiduspider 规则合并到网站根目录的 robots.txt,例如 https://example.com/robots.txt。保留其他爬虫已有的规则;Disallow: / 表示请百度蜘蛛停止抓取全站。

只屏蔽某个目录时,可以改为 /private/ 等路径。这组规则针对 Baiduspider,不会要求所有搜索引擎停止抓取。屏蔽会影响百度更新页面内容,但不能保证已经被发现的网址立即从搜索结果消失。

User-agent: Baiduspider
Disallow: /private/

如何通过 Cloudflare 拒绝百度蜘蛛请求?

对于经 Cloudflare 代理流量的主机名,在 Security rules 中选择 Create rule > Custom rules,填写下方表达式。把 example.com 换成需要保护的主机名;如需同时覆盖 www,应另外添加相应主机条件。选择 Block,才能拒绝匹配的 HTTP 请求,而不是只请爬虫停止抓取。

部署前检查主机名与匹配范围。UA 可以伪造:这条规则匹配的是自报名称,不是经过确认的百度身份。私密内容仍应使用身份验证保护。

(http.host eq "example.com" and lower(http.user_agent) contains "baiduspider")

测试 HTTP 拦截,并对比普通请求

把 example.com 换成自己的主机名后,运行以下两条命令,并在 Cloudflare Security Events 中核对匹配规则。采用 Block 时,匹配请求应被拒绝,默认拦截状态为 403;对照请求应保留普通访客原本应有的访问结果。

单看 403 不能证明这条规则命中,因为其他安全规则也可能拒绝请求。修改测试 UA 只是检验匹配条件,不是验证或冒充真实的百度蜘蛛。

curl -I -A "Baiduspider" https://example.com/
curl -I -A "UA-rule-check/1.0" https://example.com/

检查 robots.txt,并验证请求来源

先直接打开公开的 robots.txt,确认成功返回预期规则,再查看服务器访问日志中的后续请求。robots 规则依赖爬虫遵守,不是访问控制;私密内容应使用身份验证保护。

UA 中包含 Baiduspider 也可能是伪装。需要验证请求时,对来源 IP 做反向 DNS 检查,再将得到的主机名正向解析回原 IP。仅凭 UA 名称不能确认请求来自百度。

逐段拆解

片段含义
Mozilla/5.0历史兼容标记。几乎所有浏览器都自称 "Mozilla/5.0",以免老旧服务器返回残缺页面。
compatible兼容性标记——早年由 IE 发送,如今多见于爬虫。
Baiduspider/2.0Baiduspider 2.0 —— 自动化爬虫/机器人,不是真实浏览器。
+http://www.baidu.com/search/spider.html爬虫运营方提供给站长的说明页地址。

在代码里使用

curl

curl -A "Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)" https://example.com

Python (requests)

import requests
requests.get("https://example.com", headers={"User-Agent": "Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)"})

Playwright (Node.js)

const context = await browser.newContext({ userAgent: "Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)" });

来源:轻松两步,教你快速识别百度蜘蛛(User-Agent) · 百度:robots.txt 与蜘蛛屏蔽说明 · Cloudflare:创建自定义规则 · Cloudflare:规则语言函数 · RFC 9309:Robots Exclusion Protocol · 核对于 2026年9月

相关 User Agent

全部 User Agent →

你的浏览器发的是什么?查看我的 User Agent →