来源:知乎
robots.txt 的位置
robots.txt 是一个纯文本文档文件,它应位于网站的根目录下(/robots.txt)。因此,对于网站 www.fuyeor.com
,robots.txt 文件的路径应为 www.fuyeor.com/robots.txt
。
一个 robots.txt 文件仅仅针对一个网域有用。同样的,对于网站www.fuyeor.com
,robots.txt 文件的路径应为www.fuyeor.com/robots.txt
;
但是对于网站fer.fuyeor.com
,上面的robots.txt 文件不起作用,因此也需要在该域名下放一个 robots.txt 文件,路径为fer.fuyeor.com/robots.txt
。
各个域名下的 robots.txt 互相独立,互不影响。
robots.txt 规则
robots.txt 是一种遵循漫游器排除标准的纯文本文件,由一条或多条规则组成。每条规则可禁止或允许特定抓取工具抓取相应网站的指定文件路径下的文件。除非你在 robots.txt 文件中另行指定,否则所有文件均隐式允许抓取。
robots.txt 规则包括了:
User-agent
:爬虫的用户代理(UA) 标识符。
Allow
:允许访问抓取。
Disallow
:禁止访问抓取。
Sitemap
:站点地图。不限制条数,你可以添加数条 sitemap 的链接。
#
:注释行。
下面是一个包含两条规则的简单 robots.txt 文件:
User-agent: BaiduSpider
Disallow: /
User-agent: *
Allow: /
Sitemap: https://www.fuyeor.com/index/sitemap.xml
User-agent: BaiduSpider 行的意思就是:针对用户代理为“BaiduSpider ”(百度搜索引擎爬虫)的规则,同样可以设置为 bingbot(必应)、Googlebot(谷歌)等等。
Disallow: / 的意思是“禁止访问抓取全部内容”。
User-agent: 行的意思就是:针对全部用户代理(* 为通配符)的规则。其他所有用户代理均可抓取整个网站。不指定这条规则也无妨,结果是一样的;默认行为是用户代理可以抓取整个网站。
Sitemap: 行的意思是:该网站的站点地图文件路径为 https://www.fuyeor.com/index/sitemap.xml
。
通配符规则
robots.txt 可以使用*
和$
通配符匹配。
Q:不希望 [谷歌] 搜索引擎抓取/收录图片,robots.txt 应该怎么写?
# robots 示例文件
User-agent: Googlebot
Disallow: /*.jpg$
Disallow: /*.jpeg$
Disallow: /*.png$
Allow: /
Sitemap: https://www.fuyeor.com/index/sitemap.xml
示例 2:
User-agent: Googlebot-Image
Disallow: /
Q:不希望搜索引擎抓取/收录一切包含 ?的动态路径,robots.txt 应该怎么写?
User-agent: *
Disallow: /*?*
Allow: /
Sitemap: https://www.fuyeor.com/index/sitemap.xml