亚马逊网站robots协议解读

在分析亚马逊的robots协议之前我们先应该明确的是网络爬虫会带来的风险和问题,这样才能更好的理解亚马逊为什么禁止网络爬虫访问这些内容,如果访问的话会造成什么危害。

最简单的robots.txt只有两个规则:

User-agent:指定对哪些爬虫生效

Disallow:指定要屏蔽的网址

接下来以亚马逊的robots协议为例,分析其内容。

首先,先来分析亚马逊对于网络爬虫的限制。是否有有“特殊权限”的爬虫?

爬虫抓取时会声明自己的身份,这就是User-agent,就是http协议里的User-agent。robots.txt利用User-agent来区分各个引擎的爬虫。

*代表该内容下面Disallow的部分是禁止所有爬虫爬取的。因此robots协议中提及的“禁区”是针对于所有网络爬虫的,没有单独提及的爬虫。

与之对应来看,我们会发现淘宝的robots协议中明确禁止百度的网络爬虫爬取。而百度的一些网站是允许百度爬虫任意爬取的。

接下来分析亚马逊向网络爬虫屏蔽的内容有哪些。

Disallow 行列出的是要拦截的网页,以正斜线 (/) 开头,可以列出特定的网址或模式。要屏蔽整个网站,使用正斜线即可;要屏蔽某一目录以及其中的所有内容,在目录名后添加正斜线;要屏蔽某个具体的网页,就指出这个网页。

下面代表wishlist中允许访问的目录universal*、 vendor-button* 、get-button*

仔细观察禁止访问,发现了一些“看得懂”的内容:

其中禁止了网络爬虫模仿用户的行为进行诸如给商品评分、发送电子邮件、分享到twitter的行为,这是十分合理的。试想若是不禁止网络爬虫模仿用户的行为,不仅可能会给网站的性能造成影响,可能会出现爬虫造成的恶意评分,以亚马逊名义发送内容无法保证的邮件的事件的发生。这样的行为会对亚马逊的交易环境和形象产生影响。

同时禁止爬虫访问历史、物流信息的请求可以避免用户的交易信息泄露造成麻烦。

下面禁止访问的内容诸如登陆、退出账户,身份,订单地址、详细信息、历史、修改、记录,推荐浏览,浏览量,选择支付方式,选择物流,物流查询,购物车等。

其中的很多禁止爬取的都是已登录的账户才可以访问的内容,若是不禁止网络爬虫进行访问,则可能会出现网络爬虫模拟用户操作进行操作的现象发生,造成用户隐私泄露。

禁止爬虫爬取浏览量,浏览内容,推荐浏览等内容是亚马逊防止信息被爬取后被挪作他用牟利,比如“复制网站”的情况发生。