시중에 나와 있는 책은 대부분 API를 이용해 데이터를 수집하는 차원의 웹 크롤링을 소개하는 것이 대부분이다. 공인된 서적이 제공할 수 있는 내용적 한계 때문인 듯 하다. 크롤링(crawling)이라는 것은 합법과 범법 사이에서 아슬아슬한 줄타기를 하는 작업이기 때문에 그와 관련된 내용을 public하게 출판하는 것은 위험 소지가 있다.
※ 따라서 "문과생도 할 수 있는 웹 크롤링"은 시중 책에서 제공하지 못하는 내용을 중심으로 정말 우리가 웹에서 수집하고 싶은 데이터를 어떻게 수집할 수 있는지 그 방법과 도구들을 논하고자 한다. 그리고 파이썬과 기본적인 웹 크롤링(정적 홈페이지)을 다루는 것은 다른 많은 블로그나 책에서 다루기 때문에 여기서는 정말 수집하고 싶은... 사이트의 데이터 수집 방법을 다루겠다.
웹 데이터 크롤링 준비
문과생도 할 수 있는 웹 크롤링 (1)
바야흐로 빅데이터 시대... 데이터 크롤링은 사실 이과생들보다는 문과생들이 더 필요로 한다. 수요가 많은 만큼 인터넷이나 시중에 참고 자료가 널려있다. 왕초보도 할 수 있는 웹크롤링... 이라든가.... 서점에 가면 크롤링과 관련된 수많은 책을 찾아볼 수 있을 것이다.
불법의 여지가 있는 부분을 제하고 이 포스팅에서 얼마나 많은 내용을 다룰 수 있을지는 모르겠지만 최소한 크롤링에 필요한 개념이나 도구(라이브러리, 패키지)들은 소개할 수 있도록 노력하겠다.
데이터 수집 방법
크롤링 기법은 내가 생각하기에 크게 4가지로 구분된다고 생각한다.
- 서비스에서 제공하는 오픈 API 활용
- HTML 태그 정보를 기반으로 원하는 내용 부분 수집
- 서버와 브라우저 간의 Network를 분석하여 필요한 데이터 수집
- 사람이 브라우저를 직접 동작하는 것처럼 프로그램을 만들어서 데이터 수집
시중에 나와 있는 책의 내용 중 80%는 1번에 초점을 맞춰서 씌어져 있다. 19%는 2번에 초점을 맞춰서... 3번과 4번은 거의 다루질 않는다. 다루는 책을 보긴 하였으나 기회가 되면 해당 책은 다음에 소개하도록 하겠다.
'문과생도 할 수 있는 웹 크롤링'은 3번과 4번 그중에서도 4번에 집중하여서 4번을 하기 위해 필요한 방법과 도구들을 정리하려고 한다. 실제 데이터를 수집해서 어떤 프로젝트를 하려하거나 논문을 쓴다거나 하려는 이들에게 도움이 되었으면 좋겠다.
활용 도구
- Python 3.5 이상
- selenium, scrapy 라이브러리
- Firefox 브라우저
Pre-Requisite
크롤링을 시작하기 전에 다음 사항들을 알면 좋다. 쉽게 찾아서 배울 수 있는 좋은 많은 사이트들과 자료들이 있다. 필요하면 따로 소개할 수 있도록 하겠다.
- 웹(Web) 개념
- HTML 구조 및 태그
- CSS 선택자(selector) 개념
- 간단한 JavaScript 개념 및 동작 방법에 대한 이해
- 파이썬 기초
'Data Science > 문과생도 할 수 있는 웹크롤링' 카테고리의 다른 글
문과생도 할 수 있는 웹 크롤링 (4) - Selenium 제대로 사용하기 (21) | 2017.10.06 |
---|---|
문과생도 할 수 있는 웹 크롤링 (3) - Selenium 실습 기초 (5) | 2017.09.30 |
문과생도 할 수 있는 웹 크롤링 (2) - Selenium 사용 준비 (11) | 2017.09.29 |
댓글