likes
comments
collection
share

如何避免爬虫爬取测试环境的内容?

作者站长头像
站长
· 阅读数 49

概述

事情是这样的,上周产品突然问我,怎样可以让我们测试环境的官网不被爬虫捕获到。好家伙,打开百度、谷歌一搜索公司的关键字,结果一看官网测试环境的域名居然比生产环境的域名排名还要靠前,这不就乱套了么  (*T_T*) 

感觉这个经常都会容易忘记。一不小心测试环境的网站或者管理后台就被爬虫抓到了内容,这样既影响我们生产环境的排名,也存在安全隐患。如果用户通过搜索不小心进到测试环境,恰好又发生了支付行为的话,就真是有理说不清,运营同学跳进黄河都没用 ╥﹏╥...

接下来我们有请 robot.txt 来防止上述悲剧的发生

robot.txt

What?

引用维基百科中的解释:

robots.txt(统一小写)是一种存放于网站根目录下的ASCII编码的文本文件,它通常告诉网络搜索引擎的漫游器(又称网络蜘蛛),此网站中的哪些内容是不应被搜索引擎的漫游器获取的,哪些是可以被漫游器获取的。

本质上 robots.txt 只是一种约定协议,各大爬虫厂商按照“约定”,根据 robots.txt 的规定来爬取网站内容。

PS:robots.txt 只是一种“君子约定”,不能保证会不会有一些“小人”爬虫软件,不遵守这个约定,直接爬取网站的内容,所以 robots.txt 是不能保护网站的隐私。

Why?

既然 robots.txt 不能保护网站的隐私,为啥还要用呢?归根到底,还是那句老话:“防君子不防小人”,大牌搜索引擎的爬虫都是遵守这个“君子约定”。所以,当我们出现本文开头的场景时,最好还是加上 robots.txt 文件,告诉爬虫,不要爬取该网站的内容。

所以,个人建议,测试环境、不想被爬虫爬取的管理后台等网站都可以加上 robots.txt,告诉爬虫,不要爬取这些网站的内容。特别是管理后台,是最容易忘记的。

How?

位置

把 robots.txt 文件放在网站的根目录下即可

比如,可以看看百度、谷歌、Github 的 robots.txt 文件:

内容

一般来说,如果我们想要所有爬虫都不要爬取该网站的所有内容,robots.txt 里面直接写上以下两句就 ok

User-agent: *
Disallow: /
  • User-agent: * 标识相应规则适用于哪些抓取工具,* 代表所有爬虫
  • Disallow: / 表示禁止爬虫爬取根目录以及其子孙目录的所有内容(即:禁止爬取该网站的所有内容)

详细字段内容可以参考:

自动生成

如果要配置更复杂的规则,可以考虑借助一些在线生成 robots.txt 文件的工具,搜索引擎上直接搜索“robot.txt 在线生成器”就会有一大堆工具,或者直接使用 站长工具中的 robots 生成器

转载自:https://juejin.cn/post/7155846516383416356
评论
请登录