2012-04-15 6 views
0

Beautiful Soup을 사용하는 Google 애플리케이션 엔진에서 애플리케이션을 만들었습니다. 최신 버전 인 http://www.crummy.com/software/BeautifulSoup/bs4/download/4.0/을 사용하고 있습니다. GAE에 업로드 할 때까지 모든 것이 잘 작동했습니다. 내가 dammit.py에 라인 (254)을 볼 때Google Appengine의 BeautifulSoup 오류

Traceback (most recent call last): 
    File "/base/python_runtime/python_lib/versions/1/google/appengine/ext/webapp/_webapp25.py", line 701, in __call__ 
    handler.get(*groups) 
    File "/base/data/home/apps/s~app/1.358226218191077920/main.py", line 285, in get 
    self.response.out.write(self.makeQuery("9147094591")) 
    File "/base/data/home/apps/s~app/1.358226218191077920/main.py", line 191, in makeQuery 
    from bs4 import BeautifulSoup 
    File "/base/data/home/apps/s~app/1.358226218191077920/bs4/__init__.py", line 29, in <module> 
    from .builder import builder_registry 
    File "/base/data/home/apps/s~app/1.358226218191077920/bs4/builder/__init__.py", line 279, in <module> 
    from . import _htmlparser 
    File "/base/data/home/apps/s~app/1.358226218191077920/bs4/builder/_htmlparser.py", line 23, in <module> 
    from bs4.element import (
    File "/base/data/home/apps/s~app/1.358226218191077920/bs4/element.py", line 6, in <module> 
    from bs4.dammit import EntitySubstitution 
    File "/base/data/home/apps/s~app/1.358226218191077920/bs4/dammit.py", line 254 
    smart_quotes_re = b"([\x80-\x9f])" 
            ^
SyntaxError: invalid syntax 

내가이 찾을 :

if (self.smart_quotes_to is not None 
    and proposed.lower() in self.ENCODINGS_WITH_SMART_QUOTES): 
    smart_quotes_re = b"([\x80-\x9f])" 
    smart_quotes_compiled = re.compile(smart_quotes_re) 
    markup = smart_quotes_compiled.sub(self._sub_ms_char, markup) 

정말 무엇이 잘못되었는지를 볼 수 없습니다 다음 무슨 일이 생긴 것은 내가이 오류가 발생했습니다이었다. 다른 버전의 BS를 사용해 보았지만 최신 버전에서 작동하는 것으로 보이는 soup.select ("CSS SELECTOR")를 사용하기 때문에 작동하지 않습니다.

하지만 앞에서 말했듯이 내 컴퓨터에서는 정상적으로 작동하지만 클라우드에서는 정상적으로 작동하지 않습니다.

답변

2

BeautifulSoup 4에는 Python 2.7 이상이 필요하지만 Appengine에는 기본적으로 Python 2.5가 있습니다. 다음 중 하나를 수행 할 수 있습니다

  • Use Python 2.7 on Appengine (편집 :. 유료 응용 프로그램을 필요로하지 않습니다 감사합니다 Grewe.)

  • 사용 지금은 BeautifulSoup로 3.

+1

유료 앱이 필요하지 않습니다. 'app.yaml' 파일에만 지정하면됩니다. 또한 쓰레드 세이프를 명시 적으로 켜거나 끄도록 요구할 것입니다. –

+0

GAE의 2.7은 여전히 ​​베타 버전이라고 생각합니다. –

+0

@JoelCornett : [아니요] (http://googleappengine.blogspot.co.uk/2012/02/announcing-general-availability-of.html)! –

관련 문제