2012-02-20 14 views
6

BeautifulSoup v4を使用してドキュメントを解析しようとしています。私はEvernoteののAPIによって返された文字列である、note.contentにBeautifulSoupを呼び出す:Google App Engine Python 2.7 + lxml = Unicode ParserError

soup = BeautifulSoup(note.content)

私は私のapp.yamlファイルでlxmlのを有効にしている:これは私の地元の開発に取り組んでいることを

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のを削除してしまいました。そうすることで問題は解決しました。

+0

あなたは、SDKや生産を使用して、このエラーを持っていますか? (または両方)。 – proppy

+0

生産時のみ。 localhostを使用してSDK上で正常に動作します。 – zzz

+0

私は同じ問題を抱えていて、lxmlを削除して着陸しました。しかし、Pythonのhtml.parserの寛容さは非常に悪く、私のページのほとんどはこのために解析されません –

答えて

1

ユニコードの代わりにutf-8文字列を解析してみます。

関連する問題