IT is Smart

buckyroberts/Spider from GitHub 본문

Case Study/Open Sources

buckyroberts/Spider from GitHub

달인최선 2016. 8. 27. 08:06
반응형

Bucky Roberts는 thenewboston이라는 온라인 동영상 커뮤니티 설립자입니다. 직접 오픈소스도 진행을 하면서 프로그래밍, 게임개발, 웹디자인 등 다양한 주제로 튜토리얼 비디오를 제작해서 공유하고 있네요.


이번에 스터디해 본 Spider 프로젝트는 파이썬으로 구현한 웹크롤러입니다.

웹크롤러는 웹사이트를 자동으로 이동하면서 정보를 수집하는 일종의 자동화 봇(bot)인데요.

Roberts가 이 프로젝트에서 구현한 것은 특정사이트 내부의 링크정보를 수집하는 크롤러입니다..


웹크롤러 구현은 다양한 형태로 구현되고 있습니다. 

완성된 프레임워크 수준의 Scrapy를 사용하는 방법도 있고, BeautifulSoap위주로 사용하는 프로젝트도 많지만,

Roberts는 urllib모듈과 html.parser만을 사용하여 최대한 파이썬 스터디에 도움이 될 수 있도록 기본을 지키고 있습니다.

멀티쓰레딩 기법을 구현한 부분도 매우 인상적이네요.


파이썬3버전 기준으로 코드를 작성하였고, 기본적인 구현이 완성된 수준입니다.

- main.py : 프로젝트를 작성시키는 시작 소스이고, 쓰레딩기법을 구현한 소스입니다.

- spider.py : 웹크롤러 Spider의 핵심이 되는 class Spider:를 구현한 소스입니다.

- general.py : 파일입출력 등 일반적으로 공용화 할 수 있는 기능들을 구현한 소스입니다.

- link_finder.py : 웹에서 찾고자 하는 태그 구조에 대해 구현한 소스입니다. 찾고자 하는 대상에 따라 이 소스를 응용하여 수정하면 됩니다.

- domain.py : 도메인 구조, www.abc.com/XXX?qqq=1과 같은 URL에서 도메인 정보만 뽑아내도록 구현한 소스입니다.


크롤링이 동작하는 절차를 표준적으로 보여주는 소스로, 

따라하기를 통해 원리를 이해하고, 스스로의 과제를 정해 필요한 부분을 수정 보완한다면 꽤 괜찮은 결과물을 얻을 수 있겠습니다.



반응형

'Case Study > Open Sources' 카테고리의 다른 글

Moonshile/ChineseWordSegmentation from GitHub  (3) 2016.08.27