제1장 개발 환경 1
01 자바스크립트 엔진의 이모저모 _ 2
ECMAScript가 실현한 범용 자바스크립트의 세계 _ 2
자바스크립트 엔진의 이모저모 _ 3
자바스크립트가 데이터 수집에 적합한 이유 _ 6
02 에이전트란 무엇인가? _ 8
에이전트의 의미 _ 8
지능형 에이전트 _ 9
03 개발 환경 구축 _ 11
가상 머신에 실행 환경 구축 _ 11
가상 머신 생성 _ 12
가상 머신에 로그인하기 _ 16
Node.js 설치 _ 19
git 설치 _ 21
04 Node.js 모듈 설치 _ 24
npm이란? _ 24
npm install로 모듈 설치 _ 24
모듈 삭제 _ 30
05 개발 생산성을 높여 줄 모던한 에디터 소개 _ 31
자바스크립트 작성에 필요한 에디터는? _ 31
Atom ― 풍부한 플러그인이 매력 _ 32
Sublime Text ― 환상적인 커스터마이징 기능으로 사랑에 빠지게 된다는 화제
Brackets ― HTML 편집에 특화된 빛나는 에디터 _ 36
통합 개발 환경에서의 자바스크립트 개발 _ 38
WebStorm ― 자바스크립트 개발에 특화된 개발 환경 _ 39
NetBeans ― 자바 뿐만 아니라 다양한 웹 개발 언어를 지원 _ 40
제2장 웹 데이터 수집 41
01 웹 페이지 다운로드 _ 42
가장 간단한 다운로드 방법 _ 42
Node.js로 다운로드해 보자 _ 42
Rhino/Narshon으로 다운로드해 보기 _ 46
02 HTML 해석(링크와 이미지 추출) _ 48
스크래핑이란? _ 48
HTML 파일 다운로드 _ 49
HTML 파일에서 링크 추출 _ 51
이미지 파일 추출 _ 55
03 사이트를 통째로 다운로드 _ 61
통째로 다운로드하는 이유 _ 61
프로그램을 만들어 보자 _ 62
04 XML/RSS 해석 _ 69
XML이란? _ 69
Node.js에서 XML을 다루는 방법 _ 71
RSS란? _ 76
XML/RSS 파싱에 cheerio-httpcli를 사용하는 방법 _ 79
05 정기적으로 다운로드 _ 82
정기적인 처리를 수행 _ 82
환율의 변동을 확인하는 API 사용 _ 83
리눅스/Mac OS X의 경우 _ 85
윈도우의 경우 _ 90
제3장 로그인이 필요한 웹사이트 크롤링 95
01 PhantomJS와 CasperJS _ 96
PhantomJS와 CasperJS에 관하여 _ 96
PhantomJS와 CasperJS 설치 _ 98
간단한 예제 프로그램 _ 99
플리커 이미지 검색 결과 캡처하기 _ 103
아이폰용 웹사이트 화면 캡처 _ 105
인자로 지정한 페이지를 캡처하는 도구 작성 _ 106
02 로그인 후의 데이터를 다운로드 _ 109
로그인이 필요한 경우 _ 109
티스토리에 로그인하기 _ 109
마우스 클릭 _ 113
03 DOM 파싱 방법과 CSS 선택자 _ 115
웹 브라우저의 개발자 도구 사용법 _ 115
CSS 선택자 지정 방법 _ 118
CSS 선택자 실전편 _ 120
04 Electron으로 데스크톱 애플리케이션 작성 _ 124
Electron이란? _ 124
Electron 설치 방법 _ 127
Electron으로 간단한 애플리케이션을 만드는 순서 _ 127
직접 준비한 HTML을 Electron에 표시 _ 130
메인 프로세스와 렌더링 프로세스 간의 통신 _ 132
05 Electron으로 스크린 캡처 _ 138
스크린샷을 찍는 제일 빠른 방법 _ 138
Electron으로 스크린샷을 찍는 방법 _ 138
미세한 조정을 위해 딜레이 주기 _ 142
캡처할 범위를 지정 _ 144
제4장 데이터 처리 및 저장 147
01 문자 코드와 호환 _ 148
문자 코드란? _ 148
자바스크립트의 문자 코드 _ 150
Node.js의 경우 _ 150
iconv-lite를 사용한 문자 코드 변환 _ 155
Rhino를 사용하는 경우 _ 156
02 정규 표현식을 사용한 데이터 변환 _ 157
정규 표현식이란? _ 157
자바스크립트에서의 정규 표현식 사용법 _ 158
03 데이터 형식의 기초 _ 166
웹에 있는 데이터 형식 _ 166
JSON 형식이란? _ 167
JSON의 개량판, JSON5 형식 _ 170
CSON 형식 _ 172
XML/RSS 형식 _ 174
YAML 형식 _ 177
INI 파일 형식 _ 181
CSV/TSV 파일 형식 _ 184
그 외의 형식 _ 188
04 커피스크립트 _ 190
왜 커피스크립트인가? _ 190
커피스크립트 설치 _ 191
프로그램 실행 방법 _ 191
커피스크립트의 기본 문법 _ 192
참과 거짓 _ 195
배열 _ 196
연산자 _ 197
제어 구문 _ 199
함수 작성 _ 203
객체지향 _ 206
05 데이터베이스 사용법 _ 210
왜 데이터베이스를 사용하는가? _ 210
관계형 데이터 모델과 NoSQL _ 210
관계형 데이터베이스 SQLite3 사용 _ 211
웹으로부터 다운로드하여 SQLite에 저장 _ 213
NoSQL LevelDB를 사용 _ 217
데이터를 LevelDB에 보관 _ 223
06 리포트 자동 생성 _ 227
리포트 자동 생성 _ 227
출력 형식 _ 228
PDF 작성 _ 230
엑셀 형식으로 작성 _ 238
Node.js + Ocegen 사용법 _ 238
Rhino와 Apache POI 사용법 _ 239
웹 API로 획득한 값을 엑셀에 쓰기 _ 242
제5장 한글 형태소 분석 245
01 형태소 분석에 관하여 _ 246
형태소 분석이란? _ 246
형태소 분석을 이용하는 방법 _ 247
mecab-ko의 설치 _ 248
02 특정 품사의 단어들을 추출 _ 251
Node.js에서 mecab-ko를 사용하는 방법 _ 251
프로그램을 정리하여 형태소 분석 모듈 작성 _ 254
특정 품사의 단어들을 추출하는 프로그램 _ 257
03 마르코프 체인을 이용한 문서 요약 _ 260
마르코프 체인을 이용한 문서 요약 _ 260
프로그램에 관하여 _ 264
04 간단한 문장 교정 도구 작성 _ 266
문장 교정 도구에 관하여 _ 266
05 단어의 출현 빈도 조사 _ 271
단어의 출현 빈도 조사 _ 271
제6장 크롤링을 위한 데이터 소스 277
01 유익한 데이터 소스 목록 _ 278
데이터 소스에 관하여 _ 278
SNS의 활용 _ 278
소셜 북마크 활용 _ 279
상품 정보 활용 _ 279
온라인 사전의 활용 _ 280
오프라인 사전 데이터 활용 _ 280
블로그 서비스 활용 _ 281
02 트위터 크롤링 _ 283
트위터란? _ 283
트위터 API 준비 _ 283
03 페이스북 _ 289
페이스북이란? _ 289
페이스북 API _ 289
04 네이버 API 사용 _ 297
네이버 API _ 297
05 아마존 API 사용 _ 302
아마존의 상품 정보 _ 302
API를 위한 개발자 계정 생성 _ 303
아마존의 도서 정보 검색 _ 308
06 플리