上传GAE Python应用程序后出现语法错误

时间:2010-02-16 00:40:44

标签: python rss feeds

我创建了一个使用cElementTree解析RSS提要的GAE应用。在我当地安装的GAE上进行测试工作正常。当我上传这个应用程序并试图测试它时,我得到一个SyntaxError。

错误是:

Traceback (most recent call last):   File "/base/python_lib/versions/1/google/appengine/ext/webapp/__init__.py", line 509, in __call__
handler.post(*groups)   File "/base/data/home/apps/palmfeedparser/1-6.339910418736930444/pipes.py", line 285, in post
tree = ET.parse(urlopen(URL))   File "<string>", line 45, in parse   File "<string>", line 32,
in parse SyntaxError: no element found: line 14039, column 45

我做了Mr.Alex Martelli先生的建议,并在我的本地机器上打印出以下内容:

[
    '      <ac:tag><![CDATA[Mobilit\xc3\xa4t]]></ac:tag>\n', 
    '     </ac:tags>\n', 
    '     <ac:images>\n', 
    '      <ac:image ac:number="1">\n', 
    '       <ac:asset_url ac:type="app">http://cdn.downloads.example.com/public/1198/de/images/1/A/01.png</ac:asset_url>\n'
]

我上传了该应用并将其打印出来:

[
    '      <ac:tag><![CDATA[Mobilit\xc3\xa4t]]></ac:tag>\n', 
    '     </ac:tags>\n', 
    '     <ac:images>\n', 
    '      <ac:image ac:number="1">\n', 
    '       <ac:asset_url ac:type="app">http://cdn.downloads.example.com/public/1198/de/images/1/A/01.png</ac:asset_url>\n'
]

这些行对应于我正在阅读的RSS提要中的以下行:

<ac:tags>
  <ac:tag><![CDATA[Mobilität]]></ac:tag>

 </ac:tags>
 <ac:images>
  <ac:image ac:number="1">
   <ac:asset_url ac:type="app">http://cdn.downloads.example.com/public/1198/de/images/1/A/01.png</ac:asset_url>

我注意到在关闭ac:标签之前有一个换行符。 14039行对应于这一新行。

更新

我使用urllib.urlopen来访问Feed的网址。我在本地和GAE上显示了它所提取的内容。在本地,没有内容被截断。上传应用程序后进行测试,显示有15289行的Feed被截断为14185行。

我可以用什么方法来获取这个巨大的Feed? urlfetch会工作吗?

提前感谢您的帮助!

A_iyer

1 个答案:

答案 0 :(得分:0)

你可能已经遇到了GAE的一个神秘限制。

Urlopen已经被谷歌覆盖了它的urlfetch方法,因此它应该没有任何区别。 (尽管可能值得尝试,但GAE中有很多隐藏的东西)

换行符不应影响cElementTree。

AppEngine日志中是否还有其他日志消息? (关于urlopen请求?)