Я пытаюсь использовать BeautifulSoup v4 для анализа документа. Я называю BeautifulSoup на note.content, который является строка, возвращаемая API Evernote в:Google App Engine Python 2.7 + lxml = Unicode ParserError
soup = BeautifulSoup(note.content)
Я позволил LXML в моем файле app.yaml:
libraries:
- name: lxml
version: "2.3"
Обратите внимание, что это работает на моем местном развитии сервер. Однако, при развертывании на облако Google, я получаю следующее сообщение об ошибке: Трассировка
Ошибки:
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
UPDATE:
Я проверил parser.pxi, и я нашел эти строки коды, сгенерирована ошибка:
elif python.PyUnicode_Check(data):
if _UNICODE_ENCODING is NULL:
raise ParserError, \
u"Unicode parsing is not supported on this platform"
Я думаю, что в среде развертывания GAE должно быть что-то, что вызывает эту ошибку , но я не уверен, что.
UPDATE 2:
Поскольку BeautifulSoup будет автоматически падать обратно на других парсеров, я закончил удаление LXML из моего приложения полностью. Это устранило проблему.
Есть ли у этой ошибки с помощью SDK или в производстве? (или оба). – proppy
Только в производстве; Он отлично работает на SDK с локальным хостом. – zzz
У меня такая же проблема, и я приземлился, удалив lxml. Тем не менее, снисходительность html.parser Python довольно плохая, и большинство моих страниц не анализируются из-за этого –