robots、404与Spider

1、问题来源

问题始于线上的某次报警。如下图,可见发生了404错误,而REQUESTPATH是robots.txt,一个系统中不存在的路由。从命名上可以隐约猜出与爬虫有关,BROWSER:"Robot/Spider"也一定程度说明了这点。下一个问题,怎么确认?是谁在做抓取动作?原因又是什么?

2、分析过程

还记得linux系统的nslookup命令,可以通过外网ip查找对应的域名,执行如下:

结果的第二行:name = 178-154-244-9.spider.yandex.com。这就有意思了。前面的178-154-244-9看起来就是我们检索的ip,后面的spider.yandex.com就是我们要抓的域名。

下一步,看看这个域名是属于谁的:

这样,就与报警信息中的country:俄罗斯对应上的,是一个搜索引擎的域名。

关于 Yandex 搜索:Yandex 是俄罗斯最大本土搜索引擎网站,比俄罗斯 Google 市场占有率都高。而在欧洲,现在已经位居欧洲第二大搜索引擎了,在欧洲市场仅次于 Google.

User-Agent 代码和 IP 地址有人整理过一篇文章,可以参考:https://ie.icoa.cn/bot/yandexbot

3、下一个问题,为什么是robots.txt?

robots.txt(统一小写)是一种存放于网站根目录下的ASCII编码的文本文件,它通常告诉网络搜索引擎的漫游器(又称网络蜘蛛),此网站中的哪些内容是不应被搜索引擎的漫游器获取的,哪些是可以被漫游器获取的。因为一些系统中的URL是大小写敏感的,所以robots.txt的文件名应统一为小写。robots.txt应放置于网站的根目录下。如果想单独定义搜索引擎的漫游器访问子目录时的行为,那么可以将自定的设置合并到根目录下的robots.txt,或者使用robots元数据(Metadata,又称元数据)。

robots.txt协议并不是一个规范,而只是约定俗成的,所以并不能保证网站的隐私。注意robots.txt是用字符串比较来确定是否获取URL,所以目录末尾有与没有斜杠“/”表示的是不同的URL。robots.txt允许使用类似"Disallow: *.gif"这样的通配符。

有一篇文章对robots.txt进行了介绍,可以参见:https://www.test404.com/post-1427.html?wafcloud=1

4、服务器禁止某些User Agent抓取网站

可以考虑使用.htaccess文件,httpd.conf配置文件等方式,可参考:http://www.2zzt.com/jianzhan/7347.html

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值