2009-05-24 6 views
14

구문 분석 된 HTML 문서의 DOM 트리를 찾아야합니다. 내가 lxml이와 함께 문자열을 구문 분석하기 전에 uTidyLib을 사용하고파이썬에서 조작 된 HTML을 구문 분석하는 방법

는 = tidy.parseString (html_code, 옵션) DOM = etree.fromstring (STR의 (a)) 때때로

오류가 발생합니다 tidylib가 잘못된 형식의 html을 고칠 수없는 것 같습니다.

오류가 발생하지 않고 모든 HTML 파일을 구문 분석하려면 어떻게해야합니까 (복구 할 수없는 파일의 일부만 구문 분석). 당신이 lxml'sElementSoup 모듈을 시도

답변

24

Beautiful Soup는 잘못된/깨진 HTML

>>> from BeautifulSoup import BeautifulSoup 
>>> soup = BeautifulSoup("<[email protected])($*><body><table <tr><td>hi</tr></td></body><html") 
>>> print soup.prettify() 
<htm> 
<body> 
    <table> 
    <tr> 
    <td> 
    hi 
    </td> 
    </tr> 
    </table> 
</body> 
</htm> 
13

이미 LXML을 사용하고 있기 때문에 함께 좋은 일을?

ElementSoup에서 HTML을 복구 할 수없는 경우 데이터 손상에 대한 자체 관찰을 기반으로 자신의 필터를 먼저 적용해야 할 수 있습니다.

+0

+1, ElementSoup는 훌륭한 대안입니다. –

+0

링크가 끊어졌습니다. 그들을 편집했습니다. 새 위치에 원래 가리킨 것과 동일한 콘텐츠가 포함되기를 바랍니다. – tripleee

+0

아름다운 수프가 설치되어 있지 않은 경우 요소 수프에 필요할 수 있습니다. 'pip install beautifulsoup' 만 해보세요. – BobTuckerman