본문 바로가기

Crawling

html 본문 parsing

HTML을 파싱하는 방법에는 여러가지가 있겠지만 단순히 html을 받아서 string단위로 잘라 필요한부분을 얻어내는 방법이 있을 것이고, 

SAX 파서나 DOM 파서로 파싱하는 방법이있을 건데, 그중에 Dom으로 파싱하는 방법중에 본문을 Readability에서 하는 방식으로 해보면 어떨까 하는 생각이 들었다. 아직 실험해보지는 않았지만 Readability는 본문 인식률이 매우 높은 것으로 보인다. 


tag내의 id와 class의 string을 보고 positive한지 negative한지를 판단하여 본문영역을 찾아 줄수 있다. 

예를 들어 id나 class의 string에 article, post, main 등의 string이 등장한다면 본문이 될 가능성이 높아지고

footer, sidebar, header 등의 string이 들어있다면 제거대상이 되는 것이다. 


조사해본 결과로는 script등의 필요없는 node를 제거하는 것이 preprocess로 진행되는 듯 하던데, 사실 html문서들을 파싱하는데 있어서 precision은 크게 중요하지 않을 수 있다. 왜냐하면 html중에 본문이 없는 문서들은 없다. 하지만 사람이 보기에도 모호한 문서들은 많다. 이런 문서들은 대부분 검색에서 크게 가치가 있지 않을 가능성이 크다고 생각된다. (개인적인 의견이지만 어느정도 top rank에 드는 site의 경우는 위에서 말했던 id,class등에서 그 표지를 찾아 볼 수 있을 정도의 개발 표준이 있을 것이기 때문에...)


그렇다면 개인적인 생각으로는 중요한 site들에 대해서 recall이 높으면 전체에서 precision이 낮더라도 괜찮다고 생각된다.

그럼 정말 본문 추출이 자동화 될 수 있겠네~!

'Crawling' 카테고리의 다른 글

크롤러 (crawler)  (0) 2011.12.08
크롤링에서 문서의 최신성 (freshness)  (0) 2011.09.06
Url redirection  (0) 2011.08.12
URL 파싱하기  (0) 2011.08.09
url에 program으로 접근되지 않을 때  (0) 2011.07.05