2010-02-16 38 views
1

我創建了一個GAE應用程序,它使用cElementTree解析RSS提要。在本地安裝的GAE上測試工作正常。當我上傳這個應用程序並試圖測試它時,我得到一個SyntaxError。上傳GAE後出現語法錯誤Python應用程序

的錯誤是:

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馬爾泰利建議,並將其打印出來我的本地機器上執行以下操作:

[ 
    '  <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訪問飼料的URL。我顯示了它在本地和GAE上獲取的內容。在本地,沒有內容被截斷。上傳應用程序後進行測試,顯示包含15289行的Feed被截斷爲14185行。

我可以用什麼方法獲取這個巨大的Feed? urlfetch會工作嗎?

在此先感謝您的幫助!

A_iyer

+0

14039行內容可能會被超時效果截斷。要進行調試,不要直接調用'ET.parse',而是將這些行綁定到一個名稱,'xx = urlopen(URL).readlines()',然後使用例如。 'logging.info'顯示'repr(xx [14037:14042])' - 你看到的問題的一部分內容。它在GAE正確與本地安裝GAE SDK上顯示的內容是什麼?告訴我們(通過編輯這個問題),我們可能會提供幫助。 – 2010-02-16 00:57:31

+0

感謝您的快速響應!我已經編輯了你所提到的答覆。 – 2010-02-16 02:50:13

回答

0

您可能遇到了放在GAE上的神祕限制之一。

Urlopen已被谷歌改寫爲它的urlfetch方法,所以它應該沒有任何區別。 (儘管可能值得嘗試,GAE中有很多隱藏的東西)

換行符不應該影響cElementTree。

您的AppEngine日誌中是否有其他日誌消息? (關於urlopen請求?)

+0

感謝您的回覆保羅!我試着用urlfetch,正如你所說沒有區別。換行符不會影響cElementTree。該提要會被截斷,導致錯誤的尾隨字符。 GAE不顯示除syntaxError之外的任何日誌記錄消息。有沒有辦法阻止GAE中的截斷? – 2010-02-19 03:41:50

相關問題