본문 바로가기
Programming/Python

[Crawling] 웹 크롤링이란?

by 코딩의성지 2019. 11. 3.

블로그를 시작하고 더 공부를 열심히 하게 된 것 같다.

 

내가 업무에 있어 필요한 기술을 예전에는 구글링하고 책을 뒤져보고 기술을 적용한 뒤 다 잊어먹어 버렸는데,

 

요즘에는 이렇게 자료를 정리해놓으니 뭔가 굉장히 공부가 되는 듯한 느낌을 받는다 ㅎㅎ

 

이번에 업무를 함에 있어 필요한 기술은 크롤링 (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 가 웹상에서 동작하는 방식이다.

 

< PhantomJS 동작 원리 >

 

조금 내용이 어렵운 것 같다. 하지만 나랑 같이 차근 차근 공부해보면서 열심히 익혀보자.

 

그럼 오늘도 열 코딩하자~~

 

 

 

 

반응형

댓글