为什么urlfetch无法下载HackerNews RSS-feed(DownloadError:ApplicationError:2)?

时间:2012-03-21 18:56:37

标签: google-app-engine

3月13日,Google App Engine托管的www.cliws.com停止提取位于http://news.ycombinator.com/rss的HN RSS源

www.cliws.com是像谷歌阅读器这样的RSS阅读器,但更好一点;)它会定期检查各种RSS提要,所以从日志中我可以看到谷歌停止下载HN的RSS提要的确切日期(它之前工作正常)。

在开发SDK中本地提取有问题的RSS-feed网址但没有任何问题,但无法在制作中下载。

请看下面问题的演示:

s~cliwws> from google.appengine.api import urlfetch
s~cliwws> print urlfetch.fetch('http://news.ycombinator.com/rss').status_code
Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "/home/dogada/sources/python/google_appengine/google/appengine/api/urlfetch.py", line 263, in fetch
    return rpc.get_result()
  File "/home/dogada/sources/python/google_appengine/google/appengine/api/apiproxy_stub_map.py", line 592, in get_result
    return self.__get_result_hook(self)
  File "/home/dogada/sources/python/google_appengine/google/appengine/api/urlfetch.py", line 365, in _get_fetch_result
    raise DownloadError(str(err))
DownloadError: ApplicationError: 2 
s~cliwws> print urlfetch.fetch('http://www.osnews.com/feed/kind/News').status_code
200
s~cliwws> print urlfetch.fetch('http://googleappengine.blogspot.com/atom.xml').status_code
200
s~cliwws> print urlfetch.fetch('http://google.com').status_code
200

我还填写了此问题的错误:'http://code.google.com/p/googleappengine/issues/detail?id=7181'

这种奇怪行为的可能原因是什么?

1 个答案:

答案 0 :(得分:0)

在这里猜测,但我认为由于标记的用户代理,IP地址或其他元数据,Web服务器停止接受您的请求。

由于您无法影响GAE上的传出IP,请尝试将用户代理设置为“Mozilla / 5.0(X11; Linux x86_64)AppleWebKit / 535.21(KHTML,如Gecko)Chrome / 19.0.1042.0 Safari / 535.21”进行测试如果这改变了什么。