시중에 나와 있는 책은 대부분 API를 이용해 데이터를 수집하는 차원의 웹 크롤링을 소개하는 것이 대부분이다. 공인된 서적이 제공할 수 있는 내용적 한계 때문인 듯 하다. 크롤링(crawling)이라는 것은 합법과 범법 사이에서 아슬아슬한 줄타기를 하는 작업이기 때문에 그와 관련된 내용을 public하게 출판하는 것은 위험 소지가 있다.


※ 따라서 "문과생도 할 수 있는 웹 크롤링"은 시중 책에서 제공하지 못하는 내용을 중심으로 정말 우리가 웹에서 수집하고 싶은 데이터를 어떻게 수집할 수 있는지 그 방법과 도구들을 논하고자 한다. 그리고 파이썬과 기본적인 웹 크롤링(정적 홈페이지)을 다루는 것은 다른 많은 블로그나 책에서 다루기 때문에 여기서는 정말 수집하고 싶은... 사이트의 데이터 수집 방법을 다루겠다.


웹 데이터 크롤링 준비

문과생도 할 수 있는 웹 크롤링 (1)

바야흐로 빅데이터 시대... 데이터 크롤링은 사실 이과생들보다는 문과생들이 더 필요로 한다. 수요가 많은 만큼 인터넷이나 시중에 참고 자료가 널려있다. 왕초보도 할 수 있는 웹크롤링... 이라든가.... 서점에 가면 크롤링과 관련된 수많은 책을 찾아볼 수 있을 것이다.


불법의 여지가 있는 부분을 제하고 이 포스팅에서 얼마나 많은 내용을 다룰 수 있을지는 모르겠지만 최소한 크롤링에 필요한 개념이나 도구(라이브러리, 패키지)들은 소개할 수 있도록 노력하겠다.



데이터 수집 방법

크롤링 기법은 내가 생각하기에 크게 4가지로 구분된다고 생각한다.
  1. 서비스에서 제공하는 오픈 API 활용
  2. HTML 태그 정보를 기반으로 원하는 내용 부분 수집
  3. 서버와 브라우저 간의 Network를 분석하여 필요한 데이터 수집
  4. 사람이 브라우저를 직접 동작하는 것처럼 프로그램을 만들어서 데이터 수집
시중에 나와 있는 책의 내용 중 80%는 1번에 초점을 맞춰서 씌어져 있다. 19%는 2번에 초점을 맞춰서... 3번과 4번은 거의 다루질 않는다. 다루는 책을 보긴 하였으나 기회가 되면 해당 책은 다음에 소개하도록 하겠다.

'문과생도 할 수 있는 웹 크롤링'은 3번과 4번 그중에서도 4번에 집중하여서 4번을 하기 위해 필요한 방법과 도구들을 정리하려고 한다. 실제 데이터를 수집해서 어떤 프로젝트를 하려하거나 논문을 쓴다거나 하려는 이들에게 도움이 되었으면 좋겠다.


활용 도구

  • Python 3.5 이상
  • selenium, scrapy 라이브러리
  • Firefox 브라우저


Pre-Requisite

크롤링을 시작하기 전에 다음 사항들을 알면 좋다. 쉽게 찾아서 배울 수 있는 좋은 많은 사이트들과 자료들이 있다. 필요하면 따로 소개할 수 있도록 하겠다.
  • 웹(Web) 개념
  • HTML 구조 및 태그
  • CSS 선택자(selector) 개념
  • 간단한 JavaScript 개념 및 동작 방법에 대한 이해
  • 파이썬 기초



  1. 2017.09.29 16:27

    비밀댓글입니다

  2. 2017.11.08 00:54

    비밀댓글입니다

  3. Favicon of https://programics.tistory.com Programics 2019.01.15 16:26 신고

    잘 봤습니다.

+ Recent posts