基本上,所有公开你能访问到的网站都有 Robots.txt。可能只是你没有注意到而已,比如淘宝的:https://www.taobao.com/robots.txt、百度网盘的:https://pan.baidu.com/robots.txt。
看过我朋友圈的网友都知道,我这两天正在和爬虫做斗争。最近两天,我司的网站上新增了很多乱七八糟的爬虫。比如:BLEXBot、AhrefsBot、MJ12bot、hubspot、opensiteexplorer、leiki、webmeup 等。
这些爬虫都不是搜索引擎的,所以爬我们的网站,对我们的用处不大。今天借此机会,我就教大家用 Robots.txt 来禁止它们爬取网站内容。
Robots.txt 是一个爬虫规范协议,看名称就知道它是一个 txt 的文本。放在网站的根目录下。robots.txt 文件由一条或多条规则组成。每条规则可禁止(或允许)特定抓取工具抓取相应网站中的指定文件路径。它主要的作用就是来告诉爬虫,我这个网站,你哪些你能看,哪些你不能看的一个协议。
Robots.txt 有一个规范,或者说是规则,也或者说是语法。
Robots.txt 中主要有 4 个关键词。放在行首,用英文“:”分割内容部分或指令体。
下面,我举几个例子,方便大家认识。
上面的配置将分别禁止它们对网站内容的爬取。一个爬虫的 Disallow 可以有多个,比如百度网盘中的配置。
上图就是百度网盘 Robots.txt 配置示例。如果要禁止全部的爬虫,则配置下面的内容即可。
Robots.txt 也支持模糊匹配,比如下面的配置。禁止爬取以 .xls 文件结尾的内容。
注意,如果不配置,或者配置的内容,如下所说,则代表全部允许。
最后,除了 Robots.txt 之外,我们也可以通过 Nginx 的其他技术手段来禁止爬出的抓取。但是相对来说,配置 Robots.txt 的效率最高!