프로그램에 대한 배경 지식이 '1'도 없는 사람일지라도
엑셀, 구글 스프레드시트로 쉽게 할 수 있는 데이터 수집 방법!
웹에는 방대한 데이터가 모인다. 대형 정보관리체계로 유명한 Dell EMC 사의 통계에 따르면 2000년에 6.2엑사바이트였던 데이터가 해마다 증가해 2020년에는 35제타바이트에 달할 것으로 예상하고 있다. 제타바이트는 엑사바이트의 1,000배이므로 약 20년간 5,000배 이상의 데이터가 증가할 것이며, 이렇게 생성된 데이터의 약 94%는 디지털 형태로 구성되어있다. 이는 새로 생성된 데이터 대부분이 디지털 형태로 탄생하고 있다는 의미이다. 디지털화된 모든 데이터의 정보가 웹에 존재하는 것은 아니지만, 대다수의 디지털 데이터가 웹을 통해 공유되는 만큼 웹 데이터의 활용이 정보 수집 및 의사 결정에 도움이 된다는 것은 부정할 수 없는 현실이다.
이 책은 그러한 '디지털 데이터'를 '되도록 쉽게, 그리고 효율적으로 웹에서 수집하는 방법'을 설명하고 있다. 데이터 수집의 효율을 극대화하기 위해 프로그램을 개발하기도 하지만 이 책은 웬만하면 많은 사람이 사용할 수 있도록 엑셀과 구글 스프레드시트 같이 구하기 쉽고, 특별한 프로그램 환경 구축이 필요치 않은 애플리케이션을 이용하고 있다. 프로그래밍 경험이 없는 사람이라도 쉽게 따라할 수 있도록 모든 절차를 자세히 설명하고 있으므로 누구든 안심하고 데이터 수집의 자동화 세계에 입문할 수 있다.
# 데이터와 크롤링을 몰라도 엑셀 및 구글 스프레드시트로 쉽게 할 수 있다
지금까지 데이터를 수집하는 방법을 설명한 책은 파이썬, 루비 등과 같은 프로그램 언어를 이용하여 사용자가 직접 크롤러를 만드는 기술을 설명한 책이 전부다. 그러나 데이터 수집은 IT 개발자가 아닌 마케터도 제품 및 서비스에 대한 고객 반응을 분석하기 위해 필요하고, 컨설턴트가 특정 기업의 매출 추이 및 인터넷에 노출된 정보의 다양한 상관관계를 분석하기 위해서도 필요하다. 하다못해 수시로 기획안 및 제안서를 작성하는 회사원들도 근거 있는 한 줄 내용을 쓰기 위해 다양한 데이터가 필요하다.
이 책은 그러한 마케터와 컨설턴트 등 일반 직장인들에게 데이터를 수집하는 방법을 알려주고자 의도적으로 집필된 책으로, 프로그래밍 없이 데이터를 수집하는 방법과 엑셀, 구글 스프레드시트의 셀 함수 등을 사용하고, 부득이하게 프로그래밍이 필요한 경우에도 엑셀의 VBA와 구글 앱스 스크립트 등 별도의 프로그래밍 환경을 구축할 필요가 없는 방법에 대해 다루고 있다. 그렇기 때문에 그 동안 데이터 수집이 필요했지만 어려운 전문 용어 때문에 관련 도서를 한 페이지도 넘기기 힘들었던 독자들은 이 책의 내용을 매우 쉽게 읽어 내려갈 수 있을 것이다.
# 이 책은 텍스트 데이터의 효율적인 수집을 목적으로 한다
텍스트 데이터에는 다양한 종류가 있다. 논문이나 뉴스, 페이스북이나 트위터와 같은 SNS에 올라오는 글, 회사 및 상품 정보, 고객 리뷰 등 자연어에 가까운 데이터에서부터 주식 정보, 각종 순위 같은 수치 데이터까지 다양하다. 이 책에서 데이터 수집의 목적은 '독자 개인을 위해' 혹은 '비즈니스에서의' 활용에 있으며, 구체적인 목표를 설정하고 몇 가지의 활용 사례를 통해 기술들을 응용하여 다양한 데이터를 수집함으로써 자연어와 수치 데이터 양쪽 모두 활용할 수 있도록 하고 있다.
# 웹에서 데이터를 효율적으로 수집하기 위한 핵심은 자동화에 있다
웹에서 데이터를 효율적으로 수집하기 위한 핵심은 자동화에 있다. 자동화를 해놓으면 내가 자는 시간에도 데이터를 수집할 수 있다. 이 책에서 다루는 자동화의 유형은 2가지가 있다. 하나는 일부 작업을 수동으로 하는 반자동화가 있고, 다른 하나는 수작업은 완전히 배제하고 컴퓨터에서 자동 혹은 정기적으로 데이터를 검색하는 완전 자동화가 있다. 이 책에서는 각각의 장단점을 소개하고 있으므로 이를 활용하여 장기간 데이터를 축적해 기초 분석 데이터로 이용할지, 실시간으로 수집한 자료를 분석해 현재 시점의 의사 결정에 도움이 되도록 할지를 선택적으로 활용해 보자.
대학 졸업 이후 지금까지 웹 시스템 개발에 종사했으며, 기획부터 디자인 개발, 운영에 이르는 모든 분야의 전문가이다. 웹의 대상 영역을 IoT 및 머신러닝 등으로 넓혀 가고 있으며, 실리콘밸리 근무 시절에는 오픈 소스 R&D 및 해외 제품의 수입 등에도 관여하였다. 최근에는 AWS 사업 추진 및 모바일 앱을 개발하면서 어떻게 하면 편한 삶을 살 수 있는지를 찾기 위해 더욱 바쁘게 일하고 있 다. 주요 저서로는 『RUBY로 만드는 크롤러 제작 기술』, 『AmazonWebServices 패턴별 구축 및 운영 가이드』, 『AmazonWebServices 클라우드 네이티브 애플리케이션 개발 기술』(SB크리에이티브) 등이 있다.
Chapter 1 웹 데이터를 수집하기 위해 알아야 하는 것들
1-1 인터넷에는 데이터가 많죠?
_ 웹 데이터의 종류
[여기서 잠깐] 이 책에서 대상으로 하는 데이터
1-2 효율적인 데이터 수집을 위해 해야 할 일
_ 데이터 수집 3단계
1-3 어떻게 자동화 할 수 있을까?
_ 스크래핑과 크롤러
_ 반자동화 프로그램
_ 완전 자동화 프로그램
[여기서 잠깐] 이 책의 진행 방식
1-4 웹에서 데이터를 수집할 때의 주의사항
_ 수집 데이터의 처리와 저작권
_ 웹 사이트의 리소스 압박과 업무 방해
_ 크롤러와 API
Chapter 2 엑셀을 이용한 웹 데이터 수집의 기술
2-1 엑셀 VBA로 웹 데이터 수집하기
_ 엑셀로 데이터 수집하기
_ 엑셀에서 VBA를 사용하기 위한 메뉴 설정하기
_ 데이터 수집에 필요한 프로그램 작성하기
2-2 VBA에서 인터넷 익스플로러를 조작하는 방법
_ 맨 윗줄, 어떤 것을 할지 선언하는 부분
_ VBA 함수 선언
_ 인터넷 익스플로러 작업
2-3 웹 페이지에서 원하는 값을 추출하는 방법
_ HTML이란?
_ HTML에서 class로 데이터를 추출하는 프로그램
[여기서 잠깐] 검색어 변경하는 방법
2-4 XPath를 이용해 데이터 추출하기
_ 크롬에서 XPath를 추출하는 방법
_ 파이어폭스에서 XPath를 추출하는 방법
2-5 엑셀 함수를 이용한 데이터 수집
_ WEBSERVICE 함수를 이용한 데이터 수집
_ FILTERXML 함수를 이용한 데이터 수집
Chapter 3 구글 스프레드시트를 이용한 웹 데이터 수집의 기술
3-1 구글 스프레드시트와 구글 앱스 스크립트 준비하기
_ 구글 스프레드시트
_ 구글 앱스 스크립트
_ GoogleFinance 함수를 이용하여 주식 데이터 바로 가져오기
_ 구글 스프레드시트로 스크래핑하기
3-2 ImportXML 함수를 이용하여 웹 데이터 수집하기
_ ImportXML 함수의 개요
_ 주가 데이터 수집 방법
_ 데이터 가지고 오기
[여기서 잠깐] ImportXML에서 다른 데이터 검색하기
3-3 구글 앱스 스크립트를 이용하여 데이터 수집하기
_ 구글 앱스 스크립트 사용 방법
_ 구글 앱스 스크립트를 이용한 스크래핑
[여기서 잠깐] 다른 페이지에서 데이터 가져오기
3-4 지정한 시간에 정기적으로 데이터 수집하기
_ 구글 앱스 스크립트 트리거
_ 트리거 설정 방법
Chapter 4 스크래핑 전용 서비스를 이용하여 웹에서 데이터 수집하기
4-1 import.io를 사용하여 웹 데이터 수집하기
_ import.io 서비스의 개요
4-2 import.io에서 스크래핑 실행하기
_ import.io 회원 가입하기
_ 데이터 자동 추출하기
_ 저장한 데이터 불러오기
_ API 이용해 데이터 불러오기
4-3 수집한 데이터를 구글 스프레드시트로 불러오기
_ 구글 스프레드시트와 연동
_ 구글 앱스 스크립트에서 API 호출하기
Chapter 5 앱을 이용하여 페이스북에서 데이터 수집하기
5-1 앱을 이용하여 데이터를 수집하고 알림 받기
_ 알림을 받기 위한 애플리케이션
_ IFTTT 소개
_ 슬랙(Slack) 소개
5-2 IFTTT를 이용해 페이스북에 글 올리면 이메일로 알림 받기
_ IFTTT 회원 가입하기
_ 모바일 앱 설치하기
_ 페이스북에 포스트를 올리면 알림이 오는 기능 만들기
5-3 슬랙을 이용하여 신문기사(RSS)가 등록될 때 알림 받기 …140
슬랙 회원 가입 …140
RSS 피드 수집 …144
신문 기사가 새로 등록될 때마다 모바일로 실시간 알림 받기 …150
Chapter 6 다양한 데이터 수집하기
6-1 회사·상품에 관련된 정보 수집하기 …156
키워드 수집의 목적 …156
수집, 저장, 알림 방법 …157
[여기서 잠깐] 키워드 검색 연산자 …170
6-2 웹에서 특정 키워드가 새롭게 검색될 때마다 해당 정보 수집하기 …158
구글 알리미 설정 …158
IFTTT 설정 …162
[여기서 잠깐] 키워드 검색 연산자 …170
6-3 트위터에서 특정 키워드를 포함한 트윗을 수집하고 저장하기 …171
IFTTT에서 애플릿 만들기 …171
6-4 앱스토어에서 iOS 앱 랭킹 수집하기 …179
랭킹 RSS 피드 …179
랭킹 수집 …182
[여기서 잠깐] RSS를 변경하여 다른 사이트의 정보를 받아오는 방법 …185
앱스토어의 순위 정보 결과를 날짜별로 시트에 저장하기 …186
매일 지정된 시간에 실행하기 …192
0_도입부(p1-15).indd 14 2017-07-31 오후 2:48:10
6-5 구글 플레이에서 안드로이드 앱 순위 얻기 …195
Import.io를 사용한 데이터 수집 …196
구글 스프레드시트에 결과 저장하기 …199
한국 랭킹 받아오기 …200
[여기서 잠깐] 다른 랭킹 가져오기 …203
6-6 고객 리뷰 수집하기 …204
Import.io를 이용한 수집 방법 …204
구글 앱스 스크립트를 이용한 수집 방법 …207
6-7 상장 기업의 시가 총액 수집하기 …216
종목 코드 목록 검색 …216
주가 정보 수집 …218
[여기서 잠깐] GoogleFinance 함수 사용법 찾기 …222
시간순으로 주식 데이터 수집하기 …225
6-8 여러 페이지 크롤링하기 …228
엑셀 VBA로 페이지 크롤링하기 …231
6-9 구글맵 활용해서 데이터 시각화하기 …241
표와 그래프 …241
구글 내 지도를 이용한 지도 데이터 연동 …243
위도, 경도 알아내기 …248