2009. 9. 16. 22:05

웹 크롤러(WebCrawler) 공유


Web Crawler를 공유합니다.
물론, 아직 안정성이 보장된 것은 아닙니다.
그래서... 뭐.. 소스 코드는 공개하지 않습니다.

사용법은,
App.exe /URL:"..." 입니다.
예를들어,
App.exe /URL:"www.naver.com"
으로 하시면 됩니다.

그 결과는 %temp%\__crawler__에 저장이 됩니다.



실행후, 위와 같이 폴더가 생성됩니다.

* _dump_ : 실행 기록
* etc : 확장자가 지정되지 않는 파일이 저장
* html : .html 파일이 저장됩니다. (뭐... php 같은것도)
* html_information : .html의 파싱 결과를 공유합니다.
* res : 확장자가 지정된 파일이 저장 (보통 media 파일들)
* script : 스크립트가 저장
* q_link.txt : Web Crawler 동작시 필요한 작업 List Queue

etc/html/html_information/res/script 폴더내부는,
최대한 web directory 구조에 맞추어 설계되었습니다.
즉, www.naver.com/abc/def.html은 %temp%\html\www.naver.com\abc\def.html로 저장됩니다.

웹 크롤링 작업 자체가, 무한 루프라 한번 시작되면 끝이 나지 않습니다.
어떤 알고리즘을 쓰느냐에 따라 결과가 달리 나오죠.
html에 수많은 link들을 우선순위대로 queue에 넣어 배치하면, 보다 효과적인 크롤링이 가능합니다.
먄약, 서태지.html인데, 그 html에 dcinside.com 링크가 있다면, 서태지 관련 내용을 가져오지 못하고,
dcinside.com만 죽어라 긁어 오죠.

뭐, page-rank 알고리즘이나, 여러가지의 알고리즘이 가능하지 않을까... 생각해 봅니다.
물론,... 제시된 app.exe는 걍 순서대로 queue에 넣고 긁어옵니다. ㅎㅎ