Re: 안녕하세요 개발자 전병훈입니다.

먼저 조심스럽게 두 가지:


1) 이 메일링 리스트 주제하고는 조금 벗어난 질문 내용으로 생각됩니다. 제가 이전에 흥미를 가졌던 내용이라 떡밥에 걸렸을 뿐...
2) W3C 메일링 시스템 자체가 좀 후져서 보내고 내용이 기록/도착하는데 시간이 좀 걸립니다.

On Wednesday, October 23, 2013 at 7:43 PM, 전병훈 wrote:

> 안녕하세요 개발자 전병훈입니다.  
>  
> 이제 이번에 웹크롤러를 개발 할수있는 기회가 생겨서 현재 공부중입니다.
>  
> 크롤러 개발언어는 PHP 또는 Python 중 1택하여 개발할 예정입니다.
>  
> 그런데 크롤러공부를 하는중 크롤러사양 이라는게 있다는걸 알게되었습니다.  
>  
> 그래서 저는 거기에 대해서 조금더 자세히 알고싶어서 인터넷이나 책으로 그부분을 찾아봣는데요.  
>  
> 크롤러사양에 대한 부분이 자세히 안적혀있어 궁금증을 해결을 못하고 있습니다.
>  
> 죄송한 질문이지만 크롤러 사양 뭔지 알수있을까요??

나름 표준화 된 것은 아래 두가지입니다. (후자는 구글에서 내놓은거고 실제로 따르지
않는 사이트가 꽤 많을거라고 생각합니다.)

- http://www.robotstxt.org/robotstxt.html
- https://developers.google.com/webmasters/ajax-crawling/docs/specification


이하는 개인적인 소견입니다.

PHP는 크롤러를 개발하는데에 있어서 여러가지 이유로 최악의 언어라고 보입니다만,
공부삼아 개발해보실 생각이라면 무엇을 써도 상관은 없지 않을까 싶습니다.

Python을 사용하실 예정이라면 Scrapy 같은 기 개발된 프레임웍이 있습니다. Python
자체는 PHP에 완전히 부재 상태인 concurrency 문제는 해결된 상태이나 GIL 때문에
반쪽짜리 concurrency라는 문제가 있겠지요.

상용 수준 개발을 목표로 하신다면 둘 다 정답은 아니라고 생각됩니다. 요새 엄청난
인기인 node.js도 마찬가지로 적합하지 않구요. 이전에 제가 취미로 만들어 본 것은
F# 이었는데, parser 문제만 해결되면 이런 류의 언어를 베이스로 시작하거나 저급
언어로 차곡차곡 새로 짜시는 방법하시는걸 권장합니다. (F#을 추천하는건 아닙니다.
F#은 그 나름대로 문제가 많습니다.)

(해외 검색엔진 최소 두개는 C++로 깡으로 짜여진걸 확인했습니다. 어찌 알아냈는지는 비밀…)

최근 사이트까지 같이 크롤링을 해야하는 상황이라면, 근래 페이지들이 스크립트
의존성이 매우 강하기 때문에 부분적으로는 (seed 페이지라든가) 풀 브라우저
스택을 이용해야 할 수도 있습니다. 선사시대 WebKit 버전이지만 PhantomJS
같은 걸 이용할 수 있겠지요. (그 이외 CEF가 있습니다만 진입 장벽이 조금 높습니다.)

Googlebot 같은 경우 검증된 바는 없지만 브라우저 스택일 가능성이 농후하다는
주장이 많습니다. http://www.distilled.net/blog/seo/google-stop-playing-the-jig-is-still-up-guest-post/

"해결해야할 문제가 있어 크롤러가 필요한 상황" 이라면 기 개발되어 있는 오픈소스
크롤러를 사용함이 어떨까 합니다. 참고할만한 수치로 Apache Nutch 같은 경우 약
10년 동안 개발되어 왔다는 사실을 아시면 도움이 될 듯 합니다. (꽤 최근에 나온
Scrapy 같은 경우도 5년이라는 역사를 갖고 있습니다.)

--  
Sangwhan Moon (@sangwhanmoon)

Received on Wednesday, 23 October 2013 16:31:46 UTC