Python에 내장되어 있는 HTMLParser를 쓰다가 난관에 봉착했다.
완전한 HTML이 아니면 파싱에러가 속출하는거다…헉~~~
내부 코드를 보니 정규식으로 “<"를 테그 시작으로 보고 그때 이벤트를 발생해서 테그 속성을 가져오게 상속받아 임플리먼츠를 하는것이였다.
닫는 테그 없는건 예사… onclick=” ………….’ 이렇게 닫아줘서 에러…
그래서 에러처리 따로 해주고 했는데 … 그거 역시 미봉책에 불과했다.
Crawling 하다가 HTML코드에 별의별 코드가 다 존재하는걸 보고 웃기도 했지만 모질라나 IE 불여우같은 브라우저의 위대함을 새삼 깨달은 순간이이도 했다.
그렇게 찾다 찾다… Tidy라는 툴을 찾아냈고 완전한(?) HTML을 만들어 주는걸 보고 새삼놀랐다.
이게 Python 모듈이 없나 하고 찾을려고 구글신에게 문의해본 결과 mxTidy라는 모듈이 있었다.
이 모듈을 이용해 변환한 결과 아주 성공적으로 파싱이 되는것이였다.
간단하지만 리포팅 옵션까지 가지고 있어 앞으로 유용하게 쓰여질거 같다.
이런 유용한 모듈을 만들어주신 분들께 감사할따름이다..
HTML을 단정하게 해주는 프로그램(Tidy) by from __future__ import dream is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.