一、robots协议
robots协议,也称爬虫协议,网站会在 robots.txt 文件中声明哪些内容可以爬取,哪些内容不能爬取。robots.txt 放在网站根目录下。举例来说,当robots访问一个网站(比如https://www.xxx.com)时,首先会检查该网站中是否存在https://www.xxx.com/robots.txt这个文件,如果机器人找到这个文件,它就会根据这个文件的内容,来确定它访问权限的范围。此外,并不是所有的网站都会有robots.txt文件。
文件主要内容如下:
User-agent: #引擎爬虫名称,其中*表示是一个通配符,表示所有的搜索引擎种类
Disallow: #表示禁止搜索引擎爬取的内容
allow: #表示允许爬取的内容
文件部分语法:
/admin/ #表示admin目录下的内容
/admin #表示包含admin及admin目录下的内容
$ #结束符 (所有以他结尾的都能够进行匹配)
* #匹配符 (匹配零或任意多个字符)
二、亚马逊robots协议
1、国内亚马逊 https://www.amazon.cn/robots.txt
亚马逊(中国)robots协议中对所有搜索引擎的爬虫规定都相同,它只有一个user-agent,并且允许爬取的内容只有心愿单里的以下六项,大概能猜出是通用心愿单目录下的信息和供应商家的信息;不能抓取其他的比如帮助、搜索等内容。
可以推测,当用户在浏览其他网页时,广告内容有可能会出现跟心愿单内商品相似的商品信息。
User-agent: *
Allow: /wishlist/universal*
Allow: /wishlist/vendor-button*
Allow: /wishlist/get-button*
Allow: /gp/wishlist/universal*
Allow: /gp/wishlist/vendor-button*
Allow: /gp/wishlist/ipad-install*
而不允许爬取的部分,我能看懂的有四个部分,第一个是它的页面设计,即它的CSS和JS目录文件;第二个是产品信息;第三个是用户信息,包括用户的订单信息、登录信息等;第四个是帮助信息。猜测其中一部分原因应该是保护用户的隐私和网页技术等。
Disallow: /css #网页技术文件
Disallow: /gp/help/contact-us/general-questions.html*?type&email&skip=true #帮助
Disallow: /mn/loginApplication #登录信息
Disallow: /gp/product/rate-this-item #产品信息
2、美国亚马逊 https://www.amazon.com/robots.txt
相比国内的亚马逊网站,国际亚马逊网站robots协议内多了两个爬虫。
User-agent: *
User-agent: Googlebot
User-agent: EtaoSpider
它禁止了一淘网所有的爬取权限,猜测可能是因为同一商品不同国家会出现比较大的价格差异而出现干扰;
对于通用的引擎爬虫,相比国内的网站,它添加了会员的音乐服务等四个权限:
Allow: /gp/dmusic/promotions/PrimeMusic
Allow: /gp/dmusic/promotions/AmazonMusicUnlimited
Allow: /gp/offer-listing/B000
Allow: /gp/offer-listing/9000
另外,它还给谷歌单独添加了一个 /gp/aag/main?*seller=ABVFEJU8LS620目录的权限。