我正在尝试搜索显示特定产品的供应商和价格的产品详情页面,但是urllib.urlopen不起作用 - 它可以在亚马逊上的所有其他页面上使用,但我有点想知道是否亚马逊的机器人防止在产品列表页面上刮擦。任何人都可以验证吗?使用Chrome我仍然可以查看页面来源...
以下是我想要抓取的产品详情页面示例:http://www.amazon.com/gp/offer-listing/B007E84H96/ref=dp_olp_new?ie=UTF8&condition=new
答案 0 :(得分:2)
在该URL上尝试'curl -I'返回MethodNotAllowed:
$ curl -I 'http://www.amazon.com/gp/offer-listing/B007E84H96/ref=dp_olp_new?ie=UTF8&condition=new'
HTTP/1.1 405 MethodNotAllowed
Date: Wed, 13 Feb 2013 16:41:08 GMT
Server: Server
x-amz-id-1: 1WKZG9N0SE87E3KFG6YV
allow: POST, GET
x-amz-id-2: Apluv2QBzzrmXlRWjlClRGsQQ1TbwsxObe2hxfdrGhO/OQziI/aIT3vkVjCPn+qz
Vary: Accept-Encoding,User-Agent
Content-Type: text/html; charset=ISO-8859-1
并添加带有'-A'开关的User-Agent字符串不会影响该返回值。
您可以尝试使用不同的http标头来查看是否可以找到常见的内容。但很明显,亚马逊不希望你屏蔽价格 从他们的产品页面。有点谷歌搜索引出了这个页面:
http://www.distil.it/amazon-cracks-down-on-price-scraping/#.URvBFo4ry0s
没有大张旗鼓或警告,亚马逊于6月开始执行 长期政策禁止刮网工具收割 直接从其市场上列出信息,这是一个最受欢迎的工具 据商家提供的商家重新定价服务提供商 第三方开发者。
另请注意,亚马逊为其附属公司提供了API - 在右栏的“相关”问题链接中,有一些与使用python中的API相关的问题。
答案 1 :(得分:-1)