웹개발에 대해서 아는게 없어서 조금 관심을 가져 보는것이 어떻냐는 소저씨의 조언에 따라, 몇가지 재미있는 자동화 툴을 만들어 보기로 했다. 웹 자동화 작업을 하면서 웹 페이지 검사도구를 이용해서 HTML 구조도 조금 익힐수 있어서 유익하고 재미있었다. 지금까지 작업했던 것을 조금 정리해 보고자 한다.
무엇을 하려는 것인가?
뭔가 새로운 영역에 발을 들일 때는 내가 무엇을 모르는지, 어떤 키워드로 검색을 해야하는지 조차 막막할 때가 있다. 그럴 때는 대충 어떤 언어나 툴을 사용해야 하는지, 키워드가 무엇인지 주변사람들에 물어보도록 하자. 삽질 하는 시간을 많이 줄일 수 있다. 일단 내가 하려는 것은, 파이선 스크립트를 이용해서 자동으로 네이버/인스타그램 등 SNS에 로그인 하고 원하는 키워드의 포스팅을 열어주는 것이다. 이 시점에 우리가 알아야 할 키워드는 다음과 같다.
개발 환경 : 텍스트 편집기 (SublimeText 추천)
개발 언어 : Python
그 외 : Selenium, ChromeDriver, 웹 구조에 대한 기초적 지식
Python 설치
(MacOS기준) HomeBrew가 설치되어 있지 않다면 (https://brew.sh/) 이 링크를 보고 HomeBrew를 먼저 설치한다. HomeBrew는 MacOS용 패키지 관리 툴이다.
HomeBrew 설치가 완료 되었으면 터미널에서 아래 명령어를 통해 python 2.7을 설치한다.
~$ brew install python
제대로 설치가 되었다면 아래 명령어에 파이선 버전이 찍힐 것이다.
~$ python --version Python 2.7.6
Selenium
Selenium은 Webdriver 라는 API를 통해서 웹에게 명령을 내리고 크롤링, 자동화등 다양한 액션을 할 수 있게 해주는 프레임워크이다.
Selenium공식 사이트에 의하면 “Selenium automates browsers” 라고 설명되어 있다. . (http://www.seleniumhq.org/)
아래 명령어로 selenium을 설치한다.
~$ pip install selenium
간혹 selenium 설치 중 아래와 같은 에러를 볼 수 있다.
error: could not create '/Library/Python/2.7/site-packages/selenium': Permission denied OSError: [Errno 13] Permission denied: '/Library/Python/2.7/site-packages/selenium'
해당 폴더에 쓰기 권한이 없다는 뜻이니 이 에러가 나지 않을 때 까지 아래 코드를 참고해서 상위 경로를 바꿔가며 write권한을 부여한다.
~$ sudo chown -R $USER /Library/Python/2.7
크롬 드라이버 설치
원래 PhantomJS (http://phantomjs.org/) 를 사용하려고 했으나, PhantomJS가 Selenium과 100% 호환이 되지 않아서 그냥 크롬 드라이버를 사용하기로 했다. PhantomJS는 말 그대로 유령처럼 형체가 없는 웹브라우져인데, 테스트 도중 발생하는 에러를 확인하거나 실제로 스크립트가 어떻게 실행되는지 직접 보고싶다면 PhantomJS 보다 그냥 Chrome Driver를 쓰는 것이 더 좋은 것 같다.
크롬 드라이버는 다음 링크에서 다운(https://sites.google.com/a/chromium.org/chromedriver/downloads) 받을 수 있다. 다운 받은 후 아래 경로로 크롬드라이버를 옮겨준다. 그래야 어디서든 사용 가능하다!
/usr/local/bin/
코드 작성하기
이제 실제로 개발을 시작 해 보자. 작업하기 원하는 경로에서 다음과 같이 파이선 파일을 하나 생성 해 준다.
~$ vi open_naver.py
open_naver.py 파일에 다음과 같이 적어준다.
from selenium import webdriver driver = webdriver.Chrome('/usr/local/bin/chromedriver') driver.get("https://www.naver.com (https://www.naver.com/)")
터미널의 vim에서 바로 작업해도 되지만 웬만하면 SublimeText를 사용하는 것을 추천한다. 이렇게 코드를 작성하고 저장 한 다음 다시 터미널에서
~$ python open_naver.py
하고 엔터치면 다음과 같이 네이버가 실행 된 것을 볼 수 있다!
다음 글에서는 네이버 웹페이지의 구성요소를 분석해서 로그인 하는 법에 대해서 알아보자.