Я создал приложение GAE, которое анализирует RSS-каналы, используя cElementTree. Тестирование на моей локальной установке 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 соответствует этой новой строке.
Update:
Я использую urllib.urlopen, чтобы получить доступ к URL корма. Я отобразил содержимое, которое он извлекает как локально, так и в соответствии с GAE. Локально ни один контент не усекается. Тестирование после загрузки приложения показывает, что канал, который имеет 15289 строк, усечен до 14185 строк.
Какой метод я могу использовать для получения этого огромного фида? Работает ли urlfetch?
Заранее благодарим за вашу помощь!
A_iyer
Возможно, содержимое 14039 строк может быть усечено эффектом таймаута. Чтобы отлаживать, вместо прямого вызова 'ET.parse', привяжите эти строки к имени,' xx = urlopen (URL) .readlines() ', затем используйте, например. 'logging.info', чтобы показать' repr (xx [14037: 14042]) '- сегмент содержимого вокруг проблемы, которую вы видите. Что он показывает на GAE, а также на локальную установку GAE SDK? Скажите нам (отредактировав это Q), и мы сможем помочь. –
Спасибо за ваш быстрый ответ! Я отредактировал ответ, как вы уже упоминали. –