什么是robots.txt爬虫协议,规范的robots文件怎么写


什么是robots.txt爬虫协议,规范的robots文件怎么写

文章插图

如何建立一个robots.txt文件?
如果你网站没有robots.txt文件 , 想要新建一个robots.txt文件 , 其实也是非常简单的 , 首先新建一个.txt文件 , 然后按照要求填写如下robots指令 , 例如你不希望搜索蜘蛛抓取/admin/这个目录 , 就可以像以下这样进行设置:
User-agent: *
Disallow: /admin/
你还可以继续添加robots指令 , 只到满足你的要求为止 , 然后将文件保存为robots.txt , 为了避免robots文件语法错误 , 建议使用百度站工具对robots.txt文件进行校验 , 如下图所示:

什么是robots.txt爬虫协议,规范的robots文件怎么写

文章插图

此步骤非常重要 , 可以避免由于robots文件语法错误给网站带去严重的后果 。
在哪里放置robots.txt文件呢?
将robots.txt文件放在网站根目录中 , 例如你的网站域名为zhuzhouren.cn , 那么robots.txt文件就可以用zhuzhouren.cn/robots.txt这个url地址访问到 。
如果你的网站域名为二级域名 , 例如blog.zhuzhouren.cn , 那么robots.txt就可能通过blog.zhuzhouren.cn/robots.txt进行访问 。
Robots.txt的写法
每一个新指令都需要另起一行
每一个robots指令都占据一行 , 否则会让搜索蜘蛛理解错误:
错误示例:
User-agent: * Disallow: /directory/ Disallow: /another-directory/
标准示例:
User-agent: *
Disallow: /directory/
Disallow: /another-directory/
使用通配符简化指令
我们不但可以使用通配符(*)指令应用于所有用户代理 , 还可以使用通配符(*)指令来匹配类似的URL地址 , 例如 , 你想禁止搜索蜘蛛访问网站参数化url地址 , 你可以像以下这样进行设置:
User-agent: *
Disallow: /products/t-shirts?
Disallow: /products/hoodies?
Disallow: /products/jackets?

但以这种方法太过于复杂 , 我们可以将其简化成以下这样:
User-agent: *
Disallow: /products/*?
以上这个robots指令代表的意思是禁止所有搜索蜘蛛抓取/product/目录下所有带问号(?)的url链接 , 简单地讲就是禁止搜索蜘蛛抓取/product/目录下所有带问号(?)的url链接 。
使用美元符号($)来标注以特定字符结尾的URL
”$”美元符号是robots指令结尾特定字符 , 例如你想禁止搜索蜘蛛抓取所有.pdf格式的url链接 , 那么你的robots.txt文件可以这样进行设置 , 如下所示:
User-agent: *
Disallow: /*.pdf$
以上robots文件指令代表的意思是禁止搜索蜘蛛抓取任何以.pdf为结尾的url链接 , 例如无法抓取/file.pdf这样的文件 , 但可以抓取/file.pdf?id=68937586 , 因为这个文件不是以.pdf结尾的 。
相同的用户代理只声明一次
如果你在robots文件中多次声明了相同的用户代理 , 谷歌搜索虽然没有表示说反对这样的申明 , 但却是可以在一起执行的 , 如下所示:
User-agent: Googlebot
Disallow: /a/
User-agent: Googlebot
Disallow: /b/
谷歌蜘蛛不会索引以上robots文件指令中的任何一个目录 。
虽然谷歌搜索没有表示说不能这么做 , 但却为了不给搜索蜘蛛困惑 , 建议只声明一次就行了 。
使用精准的指令避免以外的错误
如果你使用精准的robots文件指令 , 很有可能会给网站优化带去很严重的错误 , 例如下方robots.txt文件指令本意是只禁止搜索蜘蛛抓取/de/目录中的内容:
User-agent: *
Disallow: /de
但是这个robots.txt文件指令同时也禁止了搜索蜘蛛抓取以/de开头的目录内容 , 如下方所示:

相关经验推荐