urllib2.urlopen在部署的应用程序中失败

时间:2012-08-07 08:58:56

标签: python google-app-engine igoogle

我想知道应用引擎代理是否存在一些限制因素,这些代理可以提供刚才更改的网址获取请求。例如,这个网址http://www.google.com/ig/calculator?q=1eur=?usd在几个小时前就顺利运行了。这是我现在得到的错误

http://www.google.com/ig/calculator?q=1eur=?usd返回错误:HTTP错误503:服务不可用

请注意,在SDK(使用本地互联网连接)中,以下代码有效。另外' curl http://www.google.com/ig/calculator?q=1eur=?usd'是的,所以我不认为谷歌限制请求并非来自最终用户浏览器(即没有vainilla用户代理)。它可能是几个小时前在应用引擎基础架构中发生的变化。

  url = 'http://www.google.com/ig/calculator?q=1eur=?usd'
    request = urllib2.Request(url = url, data = None)

    try:
        response = urllib2.urlopen(request)
    except urllib2.URLError, e:
        raise Exception("%s returned an error: %s" % (url, e))

1 个答案:

答案 0 :(得分:1)

正如评论中所指出的那样,你很可能会看到受到限制。 iGoogle托管了许多私有(但不是秘密)API,供在页面上运行的Google创作的小工具使用(天气API是另一个广泛使用的示例)。但是,它们并非真正打算供非Google小工具或应用程序使用,而且它们的实施可以(并且确实)更改,恕不另行通知。

此外,iGoogle is a deprecated product。我希望这些实用程序API可以在iGoogle关闭的同时消失(2013年11月1日)。如果您不希望自己的应用程序在iGoogle消失时中断,我建议您为此信息寻找其他来源。