我正在尝试抓取显示特定产品的供应商和价格的产品列表页面,但urllib.urlopen不起作用--它可以在亚马逊上的所有其他页面上工作,但我想知道亚马逊的机器人是否能阻止抓取产品列表页面。有人能证实这一点吗?使用Chrome我仍然可以查看页面源代码...
下面是一个我想要抓取的产品列表页面的示例:http://www.amazon.com/gp/offer-listing/B007E84H96/ref=dp_olp_new?ie=UTF8&condition=new
发布于 2013-02-14 00:56:20
在该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月,亚马逊在没有大张旗鼓或发出警告的情况下,开始执行一项长期政策,禁止屏幕抓取工具直接从其市场获取列表信息。据一名第三方开发商称,市场是商家重新定价服务提供商最喜欢的工具。
还请注意,Amazon为其附属公司提供了一个API --在右栏的“相关”问题链接中,有一些关于从python中使用该API的相关问题。
发布于 2013-02-13 08:00:34
你听说过BeautifulSoup吗?你可能会从中获得一些里程...
http://www.crummy.com/software/BeautifulSoup/
https://stackoverflow.com/questions/14844032
复制相似问题