前言
robots.txt文件是为了搜索引擎的爬虫服务的,虽然这不是一个强制标准,例如听闻百度就不遵守这个文件的规则进行内容爬取,但是多数厂商还是比较遵守规则的。
文件结构
类似于HTTP报头的Key: value
纯文本,一行以#
开头为注释,放置在Web服务器的根目录。主要的逻辑块就是通过User-agent
指定爬虫的名字,Disallow
表示目录/文件黑名单 ,Allow
表示白名单,一个User-agent
下面可以跟若干个Disallow
或Allow
。例如:
# robots.txt for wordpress
User-agent: Googlebot
Disallow: /bin/
Disallow: /cgi-bin/
Disallow: /tmp/
Disallow: /private/
Disallow: /wp-admin/
Disallow: /wp-includes/
Disallow: /wp-content/plugins/
Disallow: /wp-login.php
Allow: /wp-content/
这样的逻辑快可以有若干个,以便限制若干个不同的爬虫的行为。爬虫名字可以用*
进行通配:
# deny all robots
User-agent: *
Disallow: /
# allow all robots - 1
User-agent: *
Allow: /
# allow all robots - 2
User-agent: *
Disallow:
我觉得黑白名单在一般场景下没必要混合使用,例如公开大众访问的网站,就用黑名单就够了(除非你家网站真的全身是G点哪都不能碰),而只希望部分搜索引擎收录你家网站的情况就用白名单吧。
其他配置
不同的爬虫其实都有一些特殊的行为,可以通过robots.txt进行配置,但是如果没那么多时间研究各家爬虫,你需要指定的额外配置一般就只有Crawl-delay
爬取间隔和Sitemap
网站地图。
Crawl-delay
的单位是秒,其他没什么好说的了。
Sitemap
是指你家网站的sitemap.xml文件的地址,WordPress有无数插件可以生成该文件,挑一个自己喜欢的就行了。
所以懒人的robots.txt,一般长这样:
# in seconds
Crawl-delay: 600
User-agent: *
Disallow: /bin/
Disallow: /cgi-bin/
Disallow: /tmp/
Disallow: /private/
Disallow: /wp-admin/
Disallow: /wp-includes/
Disallow: /wp-content/plugins/
Disallow: /wp-login.php
Sitemap: https://yourdomain.com/sitemap_index.xml
工具
如果还有兴趣继续研究下去,可以利用站长之家的工具直接生成robots.txt文件。
另外,感谢一位名叫 Peter Ashford 的网友的电邮,说有一个robots.txt文件的语法检查器,它能够判断你的robots.txt文件是否有语法错误、是否有非正是/官方标准的内容,十分好用,推荐一下!虽然中文支持得比较差,但是胜在简单好用:
虽然我不知道Peter与网站websiteplanet是什么关系,websiteplanet看来是一个创业阶段的小公司,主要在提供一些创建网站和网络营销的服务,所以这个邮件很有可能只是人家的营销邮件。但好用的东西记下来没什么坏处,前提是它能存活下来。
利益申报:本站与Peter和websiteplanet没有任何关系。
不过话说回来,本博客的首要交互方式是直接发回复到文章上,虽然只有通过管理员审查的回复才可以公开,但这是为了本站没有过多垃圾信息。发电邮给管理员邮箱当然也可以,但我很有可能不能第一时间回复。
打赏作者由 bruce 于 2018-04-17 20:09 更新