网站目录下的robot.txt是什么
robots.txt是网站根目录下的爬虫协议文件,用于控制爬虫访问范围,保护敏感路径和优化网站资源。它遵循Robots Exclusion Protocol,通过User-agent、Disallow等字段指定允许或禁止爬取的页面。虽然技术上不强制遵守,但从法律和行业规范角度建议遵循,尤其对商业爬虫。使用爬虫时应先检查robots.txt,控制抓取频率,设置User-Agent,优先使用API并避
一、什么是 robots.txt?
robots.txt 是做爬虫时一个非常重要但经常被误解的机制。robots.txt 是网站根目录下的一个爬虫协议文件,例如:
https://example.com/robots.txt
它遵循的是 Robots Exclusion Protocol(爬虫排除协议)。网站告诉爬虫:哪些可以爬,哪些不希望你爬。
二、它有什么用?
核心作用有 3 个:
控制爬虫访问范围
比如:
User-agent: * Disallow: /admin/
意思是:
-
所有爬虫(
*) -
不允许访问
/admin/
保护敏感路径(但不是安全机制!)
例如:
-
/login -
/private -
/api/internal注意:
robots.txt 不能防止恶意访问,只是“君子协议”
优化网站资源
避免爬虫抓取:
-
重复页面
-
搜索结果页
-
无意义参数页
三、robots.txt 怎么用
你写爬虫时,基本流程应该是:
Step 1:先读取 robots.txt
import requests url = "https://example.com/robots.txt" print(requests.get(url).text)
Step 2:解析规则
常见字段:
| 字段 | 含义 |
|---|---|
| User-agent | 针对哪个爬虫 |
| Disallow | 不允许访问 |
| Allow | 允许访问 |
| Crawl-delay | 抓取间隔 |
Step 3:判断是否允许抓取
Python 有现成工具:
from urllib.robotparser import RobotFileParser
rp = RobotFileParser()
rp.set_url("https://example.com/robots.txt")
rp.read()
print(rp.can_fetch("*", "https://example.com/page"))
四、做爬虫必须遵守吗?
技术层面: 不强制
robots.txt:
-
不加密
-
不拦截
-
不验证
你完全可以无视继续爬
法律 & 合规层面: 强烈建议遵守
很多国家/地区(包括日本):
-
大规模违反 robots.txt 抓取
-
可能涉及:
-
服务滥用
-
数据侵权
-
不正当竞争
-
行业规范:应该遵守
像这些公司都会遵守:
-
Google
-
Bing
如果你做的是:
-
商业爬虫
-
数据产品
-
AI训练数据
必须遵守,否则有风险
五、哪些网站是开放的?哪些不是?
这里没有“官方名单”,但可以用规则判断:
一般“开放”的网站
特点:
robots.txt 允许
User-agent: * Allow: /
内容本身就是公开数据
例如:
-
Wikipedia(完全开放)
-
政府数据网站
-
开放API平台
半开放(需谨慎)
特点:
-
允许部分抓取
-
限制频率
-
禁止某些路径
例如:
-
电商网站(商品页 OK,后台 NO)
-
新闻网站(列表 OK,评论区 NO)
不开放 / 严格限制
特点:
Disallow: /
或:
-
强登录
-
反爬严格(验证码、IP封禁)
-
明确写禁止抓取
例如:
-
社交平台(如 Facebook)
-
金融/支付网站
-
企业内部系统
六、做爬虫的正确姿势(非常重要)
1. 一定先看 robots.txt
这是最基本的“礼貌”
2. 控制抓取频率
time.sleep(1)
避免:
-
压垮服务器
-
被封 IP
3. 设置 User-Agent
headers = {
"User-Agent": "MyCrawler/1.0"
}
4. 优先使用 API
如果网站提供 API: 不要爬 HTML
5. 避免敏感数据
不要抓:
-
用户隐私
-
登录信息
-
内部接口
更多推荐



所有评论(0)