반응형

1. 취미 프로그래밍, 취미 프로젝트.


사실 해킹이라는 단어의 의미를 설명하기가 모호하긴 하지만 

전통적으로 해킹은 지적 욕구 및 유희를 위해 깊히 파고 들며 그 원리를 알아가는 행위라고 생각한다. 

그냥 알아가는 것이 아니다. 

반드시 이 과정속에서 즐거움을 느끼고 몰입의 즐거움 속에서 깊히 있게 알아가는 행위, 과정이라고 생각한다. 


프로그래밍이 재밌고 즐길수 있다면 당신에게 지금은 바로 해킹의 시대다. 말하지 않아도 느끼고 있을 것이다. 

당신이 몰입할 수 있는 것들이 사방에 널려있다.  

바로 지금이 놀기 좋은 시대다.


다양한 글로벌 IT 서비스 회사들은 스타트업 개발자들, 

취미 프로그래머 혹은 해커들을 위해 자신들의 서비스에 접근할 수 있는 api를 공개하였다. 

당장 github만 들어가보더라도 다양한 오픈소스들과 

다양한 IT 서비스 회사들의 공개 api를 랩핑한 라이브러리들이 공개되어 있다. 

함께 프로그래밍, 해킹의 즐거움을 느껴보도록 하자.


이후 이어지는 글에서는 파이썬으로 만든 다양한 장난감들을 소개하며 

여러 파이썬 패키지와 모듈, 문법들을 소개하려고 한다. 

파이썬을 업무적으로 사용하는 부분은 크게 없었고 어디까지나 놀이 중 하나였을 뿐이다.


다른 프로그래밍 언어를 다루어보았고 기본적인 원리를 알고 있다면 

쉽게 이해할 수 있는 내용들이므로 가볍게 읽어 주었으면 한다. 

Windows 10, Ubuntu 14.04 LTS, 파이썬 3.5 환경에서 작성되었다.



2. 만들기 전의 마음가짐.


파이썬을 이용해 가벼운 웹 크롤러(web crawler)를 만드려고 한다. 
웹 크롤러는 WWW(월드 와이드 웹)의 방대한 웹 페이지를 탐색하는 프로그램으로 
구글, 다음, 네이버 등과 같이 사용자의 검색 요청에 따라 
검색 결과 정보를 제공하는 검색 사이트들은 나름의 웹 크롤링 과정을 수행한다.

여기서 만들 크롤러는 방대한 웹 페이지를 탐색하기 보다는 특정 게시판을 탐색하도록 간단하게 작성한다.
장난감 프로젝트를 진행하는데 있어서 동기가 매우 중요하다. 
하루 종일 업무적으로 시달렸을텐데, 칼같이 퇴근하는 것도 아니고 
빡빡한 일정에 야근 후 집에 와서도 프로그래밍이라니! 

취미로 프로그래밍을 할 수 없는 현실이다. 쉽게 질릴 수 밖에 없다. 
왠만큼 프로그래밍에 대한 열정이 있지 않는 한 의욕이 생기지 않는 것이 당연하다고 생각한다. 
그러니만큼 흥미를 자극하는 요소를 적절히 가미함으로써 
의욕을 고취하고 제작 과정에서 막히는 부분이 생겼을 때에도 스트레스 받지 않고 극복할 수 있다.

그래서 예제에서 탐색할 게시판은 걸그룹 i.o.i 멤버 중 하나인 김소혜의 DC INSIDE 갤러리로 하겠다. 
독자들께서도 꾸준하게 흥미를 갖고 진행할 수 있도록 개인 관심사와 관련된 주제로 프로젝트를 진행하기를 권한다.

3. PIP


http통신부터 html문서 파싱까지 크롤러가 동작하는데 필요한 기능들을 처음부터 끝까지 새로 만들 필요는 없다. 
바퀴를 다시 발명하지 말라는 말처럼 필요한 기능들이 구현된 모듈이 있다면 가져다 쓰도록 하자.

이때 필요한 툴이 pip 이다. 
pip는 수많은 파이썬 패키지를 유지, 관리하는 워킹 그룹 PyPA에서 추천하는 패키지 관리 프로그램으로써 
Python Package Index(PyPI, 파이썬으로 만들어진 소프트웨어들의 저장소)에서 
필요한 패키지를 찾아 사용자의 명령에 따라 설치, 관리한다.

Windows에서는 Python 설치 시  2.7.9 이후 버전과 3.4 이후 버전에서 자동으로 pip가 설치된다.


설치1_win.PNG

<그림 1> Python(Windows) 설치 후 cmd 창에서 pip 를 실행해보자.



Ubuntu에서는 pip가 설치되어 있지 않다면 다음의 명령어를 실행해 설치하도록 하자.


[apt-get install python3-pip]


스크린샷 2016-05-24 오후 10.52.24.png

<그림 2> Ubuntu에서의 pip 설치



다음은 설치 확인했던 pip를 이용해서 크롤러가 동작하는데 필요한 모듈들을 설치하도록 하자. 

먼저, 특정 url에 해당하는 웹페이지를 웹서버에서 받아오기 위해 http 요청 기능이 필요하다. 

작성할 크롤러에서 http 요청을 하는데에 있어 고급 기능이 필요치는 않으므로 

표준 모듈에 포함되어 있는 urllib 모듈을 사용한다. 

표준 모듈에 포함되어 있는 만큼 pip를 이용해서 별도로 설치할 필요는 없다.


다음 필요한 것이 BeautifulSoup 패키지.

BeautifuSoup은 html로 작성된 웹페이지를 파싱하기 위해 필요하다. 

표준 모듈로 HTMLParser가 있긴하지만 사용하는데 있어서 세세하게 설정해줘야하고 복잡하므로 

더욱 편하게 사용할 수 있는 BeautifulSoup을 사용하도록 하자.


BeautifulSoup를 설치하기 위해서는 Windows에서는 cmd 창, Ubuntu에서는 쉘에서 다음과 같이 실행하도록 하자.


[pip install BeautifulSoup4]

<그림 3> Windows에서 BeautifulSoup 설치



<그림 4> Ubuntu에서 BeautifulSoup 설치



설치한 BeautilfulSoup 패키지는 Windows의 경우 Python35/Lib/site-packages/bs4, 

Ubuntu의 경우 /usr/local/lib/python3.5/dist-packages/bs4에서 확인할 수 있다.


이후의 Python 코드 작성은 Windows 환경에서 Visual Studio 2015 Express에서 Python 개발 환경을 설치하여 사용한다. 

Visual Studio 이외에도 Sublime, Atom 등 다양한 에디터 툴이 있으니 이를 이용해서도 Python 코드를 작성할 수 있다.



설치3_visual.PNG

반응형

'python > python' 카테고리의 다른 글

[Python] Thread에서 Queue 갖고 처리하기 (2.7)  (0) 2016.05.17