1

我正在尝试抓取显示特定产品的供应商和价格的产品列表页面,但 urllib.urlopen 不起作用 - 它可以在亚马逊上的所有其他页面上工作,但我有点想知道亚马逊的机器人是否阻止在产品列表页面上抓取。任何人都可以验证这一点吗?使用 Chrome 我仍然可以查看页面源...

这是我想要抓取的产品列表页面示例:http ://www.amazon.com/gp/offer-listing/B007E84H96/ref=dp_olp_new?ie=UTF8&condition=new

4

2 回答 2

2

尝试curl -I该 URL 会返回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

并且使用开关添加User-Agent字符串-A不会影响该返回值。

您可以尝试使用不同的 http 标头,看看是否可以找到通过的内容。但很明显,亚马逊不希望你从他们的产品页面筛选价格。一点点谷歌搜索就会出现这个页面:

http://www.distil.it/amazon-cracks-down-on-price-scraping/#.URvBFo4ry0s

据第三方开发商称,亚马逊在没有大张旗鼓或警告的情况下,于 6 月开始执行一项长期政策,禁止屏幕抓取工具直接从其市场获取列表信息,这是商家重新定价服务提供商最喜欢的工具。

另请注意,亚马逊为其附属公司提供了一个 API——在右侧列的“相关”问题链接中,有一些关于从 python 使用该 API 的相关问题。

于 2013-02-13T16:56:19.887 回答
-1

你听说过美汤吗?你可能会从中获得一些里程...

http://www.crummy.com/software/BeautifulSoup/


更多细节:BeautifulSoup 抓取可见网页文本

于 2013-02-13T00:00:33.853 回答