2008-09-10 6 views
6

간단한 파이썬 정규 표현식을 사용하여 축구 (축구) 웹 페이지에서 정보를 긁어 내고 싶습니다. 문제는 첫 번째 갈라파기 인 '리타로'와 같은 선수가 & # 196으로 나옵니다. & # 196; RITALO!
즉, html은 특수 문자에 대해 이스케이프 처리 된 마크 업을 사용합니다 (예 : & # 196;웹 페이지에서 국제 문자를 가져 오는 중입니까?

올바른 파이썬 문자열로 html을 읽는 간단한 방법이 있습니까? 그것이 XML/XHTML이라면 쉽습니다. 파서가 그것을 할 것입니다.

답변

7

HTML 스크래핑을 위해 BeautifulSoup을 권하고 싶습니다. 또한과 같이 해당 유니 코드 문자를 HTML 엔티티로 변환하도록 지시해야합니다 표준 codecs 모듈은 당신이 할 수 있도록 이것에 대한 코덱을 포함하는 경우

>>> from BeautifulSoup import BeautifulSoup  
>>> html = "<html>&#196;&#196;RITALO!</html>" 
>>> soup = BeautifulSoup(html, convertEntities=BeautifulSoup.HTML_ENTITIES) 
>>> print soup.contents[0].string 
ÄÄRITALO! 

은 (그것은 좋은 것 "some_string".decode('html_entities')하지만 불행히도 그렇지 않습니다)

편집이 :! 또 다른 해결책 : 파이썬 개발자 프레드릭 룬트 (Fredrik Lundh) (다른 것들 사이 elementtree의 저자) 진수, 진수 및 명명 된 개체와 함께 작동 자신의 웹 사이트에 a function to unsecape HTML entities있다 (BeautifulSoup로 것 16 진수로는 작동하지 않습니다.)

0

나는 그것을 자신을 시도하지 않은,하지만 당신은

http://zesty.ca/python/scrape.html를 시도?

원하는 작업을 수행하는 htmldecode (text) 메소드가있는 것 같습니다.

2

BeautifulSoup을 사용해보세요. 그것은 트릭을 수행하고 잘 작동하도록 형식화 된 DOM을 제공해야합니다.

This blog 항목이 일부 성공한 것으로 보입니다.

관련 문제