블로그를 시작하고 더 공부를 열심히 하게 된 것 같다.
내가 업무에 있어 필요한 기술을 예전에는 구글링하고 책을 뒤져보고 기술을 적용한 뒤 다 잊어먹어 버렸는데,
요즘에는 이렇게 자료를 정리해놓으니 뭔가 굉장히 공부가 되는 듯한 느낌을 받는다 ㅎㅎ
이번에 업무를 함에 있어 필요한 기술은 크롤링 (Crawling) 이라는 기술이다.
IT 종사자들이라면 이 단어를 한번 쯤은 들어 보셨을 수도 있다.
이것 저것 검색하고 공부하다 보니 웹크롤링을 하려면 아래와 같은 내용을 알아야 하는 것 같다.
Selenium
Selenium 이란 다양한 언어에서 Web driver를 이용해 웹 자동화 테스트나 웹 자동화를 도와주는 Library 이다.
더 자세히 알기 위해 공식 홈페이지를 들어가봤다.
어 .. 그래 ... ㅎㅎㅎ 영어 잘하는 사람 댓글로 해석 좀 해주라. 짧은 영어 지식으로 봤을때는 뭐 웹 애플리케이션을 자동화시킬 수 있고, 또 자동화 뿐만아니라 다른 것도 할 수 있다고 하는 것 같다. ㅎㅎ 간단하게 말해서 브라우저의 자동화나 크롤링을 도와주는 라이브러리라고 생각하면된다.
크롬이나 파이어폭스 같은 경우 Web Driver를 따로 지원해주기 때문에 이 Selenium을 통해 제어가 가능하다.
이 Selenium을 이용하면 로그인이나, 특정 버튼을 누르는 것 과같은 걸 자동으로 할 수 있어 Crawling (크롤링) 이나 Macro (매크로) 를 만드는 게 가능하다. 또한 Proxy에 접속하거나 아주 귀찮은 reCAPTCHA(버스가 포함된 화면을 클릭하세요 ~~~ 이런거 ㅎㅎㅎ) 를 넘기는 것도 가능하다.
PhantomJS
PhantomJS는 interface 가 없는 headless browser 다. PhantomJs를 이용해서 웹 사이트에서 소스코드를 메모리에 가져오고, 페이지의 자바스크립트를 실행하는데 그래픽을 아예 렌더링하지 않고 사용할 수 있다. 간단하게 말해서 브라우저처럼 동작은 하지만 GUI는 표시하지 않는다는 말이다.
위에서 언급한 Selenium Library를 함께 사용하면 아주 강력크한 웹 크롤러를 만들어 낼 수 있다.
Selenium 에서 PhantomJS를 사용하려면 GhostDriver를 사용해야하는데 최신버전에서는 따로 설치할 필요는 없다.
아래의 그림은 PhantomJS 가 웹상에서 동작하는 방식이다.
조금 내용이 어렵운 것 같다. 하지만 나랑 같이 차근 차근 공부해보면서 열심히 익혀보자.
그럼 오늘도 열 코딩하자~~
'Programming > Python' 카테고리의 다른 글
[Python] Python 기본 강의 (4) - 연산자 (0) | 2019.11.09 |
---|---|
[Python] Python 기본 강의 (3) - 데이터 타입 활용해 보기 (6) | 2019.11.08 |
[Python] Python 기본 강의 (2) - 변수와 데이터 타입 (0) | 2019.11.05 |
[Python] Python 기본 강의 (1) - 주석, 문장, 코드블럭 & 인덴트 (0) | 2019.11.05 |
[Python] Python 개발 환경 세팅하기 (2) | 2019.11.04 |
댓글