검색엔진공부 모델링에 대한 글을 예전에 쓴적이 있다. 여기 보면 웹로봇은 “쓸만한 전문도서 없음”이라고 되어 있다.
뭐 그래서 이곳에 덧붙이고자 포스팅을 써본다.
웹로봇을 개발을 하다 보니 이런저런 책을 많이 찾아보게 되는게 사실이다. 그중에서 가장 많은 도움이 된 책을 꼽아 본다면 HTTP: The Definitive Guide라는 책이다. Ch.9에서는 웹로봇을 위한 단원까지 마련되어 있다. 물론 HTTP 프로토콜을 이정도로 다룬 책은 유일 무이하다고 보고 있다. 웹로봇을 개발한다면 꼭 필요한 필수도서가 아닐까 한다. 사실 이 책은 강컴에서 9천9백원 이벤트 할때 운좋게 구입했던 책이였고, 나 자신이 검.개.그에도 추천을해 많은 분들의 구입을 유도한 장본인이기도 하다.
그 외에도 구입을 하지는 않았지만 Spidering Hacks이라는 책도 아주 조금 참고만 했었다. 물론 그 책의 예제코드가 Perl코드로 되어 있어서 약간 애를 먹었지만 참고할만한게 많은 도서이긴 했다. 하지만 제목처럼 Hack수준의 책은 아니였던걸로 기억이 난다.
제일 처음에 웹로봇을 만들기 위해 참고를 한 책은 Art of Java라는 책이였다. 이 책의 pdf를 구해서 6장만 프린트해서 본 기억이 난다. 물론 코드도 역시…
이 책의 자료와 코드는 검.개.그에 올렸으니 필요하신 분들은 받아서 보면 될거란 생각이 든다.
또한 오픈소스로 되어 있는 웹로봇도 있으니 참도 하면 된다.
HarvestMan이라는 Python으로 구현된 웹로봇이 있다. 무려 50여가지가 넘는 옵션이 있었던 걸로 기억을 한다. 처음엔 그 옵션 자체가 뭘 의미하는지 몰라 헤멧지만 지금은 좀 다르겠지…
물론 Python에서 기본으로 제공하는 HTMLParser를 사용해서 상용으로 로봇을 돌린다면 아마 많은 난관이 있을거다. 원활하게 돌린다면 수정이 반드시 필요하다는 이야기 이다. 나 역시 무려 50%가 넘는 파서 코드를 수정해서 쓰고 있으니까 말이다.
웹로봇을 깊이우선, 너비우선으로 하든지간에 처음 구현하는건 그리 어렵지가 않다. 물론 정말 잘 만든 웹사이트를 크롤링한다면 아무 이상이 생기지 않을것이다. 하지만 세상엔 정상적인 웹 사이트가 별루 없다. End 테그가 없는 웹 페이지 때문에 로봇이 뻣는 경우를 경험한다면 그건 이러한 문제의 시발점이 되지 않을까 한다. 그래서 HTMLParser를 강건하게 만드는게 중요하다. 물론 강건하게 만들려면 많은 분석작업과 노력이 필요하다. IE의 파서수준은 아니더라도 비슷하게는 만들어야 관대한 IE에 보여지는 수많은 오류 HTML페이지의 정보를 추출할수 있을테니까.
HTMLParser가 준비가 되었다면 HTTP프로토콜이 어떤걸로 구성되어 있는지 공부도 필요하다. 특히나 HEADER의 각각 항목이 의미하는 바가 무엇인지 그리고 그걸이용해 로봇에 무엇을 적용할지를 생각하는거 말이다. 이 부분은 위에서 추천한 HTTP 책이면 충분하지 않을까 한다.
요즘들어 타 업체에 검색엔진 교육하러 다니면서 이런 정리가 필요하지 않을까 해서 올려봤다. 물론 각각 항목에 저렇게 간단하게 이야기 하지 못하는 많은 고민했던 사항과 노하우가 있지만 그런건 나중에 정리하기로 하고 일단 웹로봇을 구현하기 위한 자료모음정도는 이 정도가 아닐까 한다.
이밖에 문서중복검사법 이라든지 상대주소, 절대주소, 파일 다운로딩방법, If- Modified-Since같게 무엇을 의미하는지 같은 부분은 위의 책들에 나와있는 부분이니 궁금하면 책을 사보길 바란다.
웹 로봇 만들기 위한 참고 도서 추천 by from __future__ import dream is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.