Estoy tratando de usar BeautifulSoup v4 para analizar un documento. Me llamo BeautifulSoup en note.content, que es una cadena devuelta por la API de Evernote:Google App Engine Python 2.7 + lxml = Unicode ParserError
soup = BeautifulSoup(note.content)
He permitido lxml en mi archivo app.yaml:
libraries:
- name: lxml
version: "2.3"
Tenga en cuenta que esto funciona en mi desarrollo local servidor. Sin embargo, cuando se despliegan en la nube de Google me sale el siguiente error:
Rastrear error:
Unicode parsing is not supported on this platform
Traceback (most recent call last):
File "/base/python27_runtime/python27_lib/versions/third_party/webapp2-2.3/webapp2.py", line 1511, in __call__
rv = self.handle_exception(request, response, e)
File "/base/python27_runtime/python27_lib/versions/third_party/webapp2-2.3/webapp2.py", line 1505, in __call__
rv = self.router.dispatch(request, response)
File "/base/python27_runtime/python27_lib/versions/third_party/webapp2-2.3/webapp2.py", line 1253, in default_dispatcher
return route.handler_adapter(request, response)
File "/base/python27_runtime/python27_lib/versions/third_party/webapp2-2.3/webapp2.py", line 1077, in __call__
return handler.dispatch()
File "/base/python27_runtime/python27_lib/versions/third_party/webapp2-2.3/webapp2.py", line 547, in dispatch
return self.handle_exception(e, self.app.debug)
File "/base/python27_runtime/python27_lib/versions/third_party/webapp2-2.3/webapp2.py", line 545, in dispatch
return method(*args, **kwargs)
File "/base/data/home/apps/s~ever-blog/1.356951374446096208/controller/blog.py", line 101, in get
soup = BeautifulSoup(note.content)
File "/base/data/home/apps/s~ever-blog/1.356951374446096208/lib/bs4/__init__.py", line 168, in __init__
self._feed()
File "/base/data/home/apps/s~ever-blog/1.356951374446096208/lib/bs4/__init__.py", line 181, in _feed
self.builder.feed(self.markup)
File "/base/data/home/apps/s~ever-blog/1.356951374446096208/lib/bs4/builder/_lxml.py", line 62, in feed
self.parser.feed(markup)
File "parser.pxi", line 1077, in lxml.etree._FeedParser.feed (third_party/apphosting/python/lxml/src/lxml/lxml.etree.c:76196)
ParserError: Unicode parsing is not supported on this platform
ACTUALIZACIÓN:
Revisé parser.pxi, y me encontré con estas líneas de código que generó el error:
elif python.PyUnicode_Check(data):
if _UNICODE_ENCODING is NULL:
raise ParserError, \
u"Unicode parsing is not supported on this platform"
Creo que debe haber algo sobre el entorno de implementación de GAE que causa este error , pero no estoy seguro de qué.
ACTUALIZACIÓN 2:
Debido BeautifulSoup caerá automáticamente en otros programas de análisis, que terminó eliminando lxml de mi solicitud en su totalidad. Al hacerlo, se solucionó el problema.
¿Tiene este error utilizando el SDK o en la producción? (o ambos). – proppy
Solo en producción; Funciona bien en el SDK con localhost. – zzz
Estoy teniendo el mismo problema y aterrizamos eliminando lxml. Sin embargo, la clemencia de html.parser de Python es bastante mala y la mayoría de mis páginas no se analizan debido a esto. –