【发布时间】:2014-09-19 14:16:59
【问题描述】:
我一直在使用亚马逊的产品广告 API 来生成包含给定书籍价格的网址。我生成的一个网址如下:
当我单击链接或将链接粘贴到地址栏时,网页加载正常。但是,当我执行以下代码时出现错误:
url = "http://www.amazon.com/gp/offer-listing/0415376327%3FSubscriptionId%3DAKIAJZY2VTI5JQ66K7QQ%26tag%3Damaztest04-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D386001%26creativeASIN%3D0415376327"
html_contents = urllib2.urlopen(url)
错误是 urllib2.HTTPError: HTTP Error 503: Service Unavailable。首先,我不明白为什么自从网页成功加载后我什至会收到这个错误。
另外,我注意到的另一个奇怪的行为是,以下代码有时会出现,有时不会给出所述错误:
html_contents = urllib2.urlopen("http://www.amazon.com/gp/offer-listing/0415376327%3FSubscriptionId%3DAKIAJZY2VTI5JQ66K7QQ%26tag%3Damaztest04-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D386001%26creativeASIN%3D0415376327")
我完全不知道这种行为是如何发生的。有什么解决方法或解决方法吗?我的目标是读取 url 的 html 内容。
编辑
我不知道为什么堆栈溢出会更改我的代码以将我在代码中上面列出的亚马逊链接更改为 rads.stackoverflow。无论如何,忽略 rads.stackoverflow 链接并在引号之间使用我上面的链接。
【问题讨论】:
-
如果我没记错的话,
rads.stackoverflow.com是(或曾经是)SO 实施然后废弃的广告服务。很可能存在某种使用限制(推荐人、客户等等) -
出于某种随机原因,我不知道为什么链接更改为包含堆栈溢出标记。但是,如果我将复制和粘贴链接保留在地址栏上,网站就可以正常工作。
-
啊,我明白了!不错 :) 这一定是 SO 注释解析器。