본문 바로가기

크롤링

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.. 더보기
크롤링에서 문서의 최신성 (freshness) 크롤링에서 문서의 freshness는 중요한 부분중의 하나이다. 어떤 site url을 방문 오늘 10:30 AM에 방문했다고 하자 하지만 그 문서(web page)가 10:50 AM에 변경되었다면 어떻게 될까? 즉, 우리가 방문했던 결과는 예전이 되는 것이다. 만약 그 문서가 web상에서 사라졌다면 우리는 없는 문서를 가지고 있는 것이다. web의 content들은 보통 create,update,delete의 동작을 반복한다. 따라서 문서가 생겼는지, 변경되었는지, 삭제되었는지를 빨리 알아내는 것은 매우 중요하다고 할 수 있다. 크롤러는 새로 생긴 문서를 최대한 빨리 발견해야하고 변경된 문서를 빨리 방문해 local에 저장된 문서의 최신성을 보장해주며 삭제된 문서를 빨리 발견하여야 한다. 이 중에서 변.. 더보기
수집시에 HTTP 헤더의 if modified since 지나가다가 구글(google)의 웹마스터 가이드를 보게됬는데 크롤링이 잘되고 파싱이 잘 되려면 어떻게 html이 작성되면 좋을 까에 대한 이야기가 있다. http://www.google.com/support/webmasters/bin/answer.py?answer=35769#1 웹서버가 If-Modified-Since HTTP 헤더를 지원하는지 확인합니다. 이 기능을 사용하면 웹서버에서 가장 최근 크롤링 이후 사이트 콘텐츠가 변경되었는지 여부를 자동적으로 Google에 전달합니다. 이렇게 되면 낭비되는 전송용량과 전반적인 비용을 절약하실 수 있습니다. 라는 부분이 있다. if modified since를 지원하는 서버를 사용할 경우. header에 if modified since에 적어준 시간 이후로 페.. 더보기