웹로봇(Web Crawler) 개발전에 고민해야 할 사항.

출처 : 검색엔진 개발자 그룹

웹 로봇(Web Crawler)개발을 앞두고 이래저래 준비하고 있는게 많은데 개발자 그룹 어떤 고수분이 올린글을 인용해 본다.

1. 웹로봇은 http 프로토콜규약에 의해 이루어지는 것이므로 쉽다는 생각은 금물.

2. HTML 태그 구조에 자신있는가?

웹프로그램을 해본적이 없이 어플리케이션 입장에서 접근한다면 반드시 실패.

3. 개발해서 어디다 써먹을것인가?

그냥 한번 만들어보고 싶다는 생각에서 테스트한다면 상관없으나 웹로봇으로 밥벌이를 할 생각이라면 일찌감치 그만두는것이 나을듯…

수년간 웹로봇에 관심을 가졌지만 내리는 결론은 한숨뿐^^^

나는 어떨까?

1. http 프로토콜에 대한 이해…. 약 1년간 웹 프로그래밍을 해본경험 2개의 사이트 개발 경험 정도… 프로토콜에는 어느정도 자신이 있다.

2. HTML 태그 구조에 자신있는가? … 자신 있다! 더불어 자바 스크립도 자신이 있음…

3. 밥벌어 먹는데 쓸껀데… 큰일이군…. 에공… 공부할 목적도 있다. 분산처리정도까지 욕심이 있으니까..

저번에 기차표 예매 프로그램을 만들때 좀 고생하던게 생각난다. 리다이랙트를 자바 스크립으로 할경우 웹 로봇에서도 분명히 자바 스크립 파서를 만들어 주지 않으면 진입도 하지 못하고 웹로봇의 역활은 끝일것이다.

근데 자바 스크립으로 로그인 하는지 어떻게 알수 있을까????
좀 복잡하다… 같이 일하는 경민씨 말을 들으면 미니 컴파일러같은걸 만들어야 하지 않냐고 한다. 흑~~~~ ^^; (피가 끓는군…ㅎㅎ)

자바로 되어 있는 웹 로봇 소스 분석을 완벽하게 해서 Python으로 만들어 볼라는 찰라인데 좀더 웹 로봇에 대한 기초를 쌓고 작업에 들어가야 겠다. 물론 A.I도 공부해야 는데…

나의 질문 ..그리고 답변…

이런 질문에….

기존에 C로 되어 있는 Web Crawler를 Python으로 만들려고 합니다.

이유는 기존의 프로그램의 유지보수 어려움및 플랫폼 독립적이지 못한 부분때문에 그렇습니다. (어짜피 리눅스 버젼도 만들어야 된다구 해서요..)

아직 파이썬으로 다시 만들어 본다고 건의는 하지 않은 상황인데 내일 정도 할려고 합니다.
윗분들에게 파이썬의 장점을 어떻게 이야기 하면 수긍을 하실까요?

물론 Google의 웹 로봇도 파이썬으로 만들어 졌다는 이야기도 듣긴 했는데 도대체 굳이 파이썬으로 만든 이유도 잘 모르겠더군요

이런 답변이 붙었다.

저도 파이썬으로 web crawler 를 만들어봤는데 뻔한 장점을 몇가지 꼽아보자면 아래와 같습니다.

1. 만들기 쉽다.
– web crawler 는 웹문서를 받아서 적당히 파싱을 해줘야 하는데 C 에 비해서 이것이 쉽습니다. C 도 뭐 라이브러리(파싱 라이브러리 많죠) 사용하면 되지만 라이브러리 설치 및 사용하는 걸 생각해보면 너무나 귀찮지요. 유연하지도 않고. 거기다가 라이브러리 설치를 고려한 플랫폼 독립성까지 생각해보면.. =_=;; 윗분들에게 일정을 맞추고 싶으면 파이썬을 쓸 수밖에 없다고 협박해 보세요.

2. 유지보수가 쉽다.
– 특정 웹사이트를 긁어오는 web crawler 의 경우 해당 사이트가 리뉴얼이라도 해버리면 다시 고쳐서 사용해야 합니다. C 로 하게 되면 고치기도 어렵고, 컴파일도 새로 해야 하고 무진장 귀찮지요.

3. C 로 짠 것과 성능 차이가 별로 나지 않는다.
– 파이썬의 단점이라면 느린 속도겠지요. 윗분들도 ‘성능’ 이라고 하면 무척 중요하게 생각할 겁니다. web crawler 의 경우 network io 가 bottle neck 이 되지 처리하는 procedure 가 bottle neck 이 되지는 않습니다. C 로 짜나 파이썬으로 짜나 처리속도는 거의 비슷할 겁니다. 닭 잡는 일에 소 잡는 칼을 쓸 필요는 없겠지요.