본문 바로가기

도서 소개

자바스크립트와 Node.js를 이용한 웹 크롤링 테크닉

이 책은 현재 절판입니다. 그간 읽어주신 분들께 감사드립니다.

 

자바스크립트로 손쉽게 웹 크롤러를 만들고, 

수집한 데이터를 저장/처리하여 세련되게 시각화하고, 

쉽고 간단한 스트립트로 원하는 데이터를 모두 내려받자!

 

출판사 제이펍

원출판사 ソシム

원서명 JS+Node.jsによるWebクローラー/ネットエージェント開発テクニック (ISBN: 9784883379934)

저자명 쿠지라 히코우즈쿠에

역자명 이동규

출판일 2016년 12월 30일

페이지 516쪽

시리즈 (없음)

판  형 (188*245*25)

제  본 무선(soft cover)

정  가 30,000원

ISBN 979-11-85890-66-1 (93000)

키워드 머신러닝 / 문자 인식 / 형태소 분석 / 베이지안 필터 / GoogleCharts / D3.js / SNS / 웹 API / HTML 파싱 / DOM 요소 추출 / Phantomsjs/Casperjs / Electron / Node.js / javascript / 노드제이에스 / 웹 스크래핑 / 웹 크롤러 

분야 웹 프로그래밍 / 자바스크립트

 

관련 사이트

아마존재팬 도서 소개 페이지

원출판사 도서 소개 페이지

저자 웹사이트

 

관련 포스트

■ 2016/12/28 - [출간전 책소식] - 원하는 데이터를 자바스크립트로 수집하고 분석하는 기막힌 방법!

 

 

관련 시리즈

■ (없음)

 

관련 도서

다양한 언어로 배우는 정규표현식

AngularJS 인 액션: 단계별로 배우는 대화형 웹 애플리케이션

실무에 바로 적용하는 Node.js

자바스크립트 & 제이쿼리: 인터랙티브 프론트엔드 웹 개발 교과서

기초를 다지는 최신 웹 개발 공략서

 

관련 파일 다운로드

예제 코드

■ Node.js 크롤링 환경 구축 가이드(역자 제공)

Node.js 크롤링 환경 구축 가이드.pdf
다운로드

 

교재 검토용 증정 안내

■ 학교 및 학원에서 교재 선정을 위해 책을 파일로 검토해보고자 하시는 분들은 다음의 페이지에서 신청 양식을 작성해주시기 바랍니다. 확인 후 연락을 드리도록 하겠습니다. http://goo.gl/vBtPo3

 

강의보조 자료

교재로 채택하신 분들은 메일을 보내주시면 아래의 자료를 보내드리겠습니다: jeipubmarketer@gmail.com

■ 본문의 그림과 표

 

샘플 PDF(차례, 옮긴이 머리말, 머리말, 이 책의 사용 방법, 베타리더 후기, 1장 '개발 환경')

자바스크립트와Node.js를이용한웹크롤링테크닉_sample.pdf
다운로드

 

 

정오표 페이지

http://jpub.tistory.com/654

 

도서구매 사이트(가나다순)

[강컴]   [교보문고]   [도서11번가]   [반디앤루니스]   [알라딘]   [예스이십사]   [인터파크]

 
도서 소개

자바스크립트로 손쉽게 웹 크롤러를 만들고, 

수집한 데이터를 저장/처리하여 세련되게 시각화하고, 

쉽고 간단한 스트립트로 원하는 데이터를 모두 내려받자!

 

이 책은 다양한 에이전트를 만들어 웹 데이터 수집과 처리를 자동화하는 방법을 소개한다. 우리가 익히 알고 있듯이 웹에는 유익한 데이터가 가득한데, 이러한 데이터를 체계적으로 수집하여 분석하고 활용하는 것은 즐거운 취미가 될 수도, 다양한 업무에 실질적인 도움이 될 수도 있을 것이다.

 

이 책의 전반부를 통해 웹사이트를 순회하는 크롤러를 만들어 본인만의 데이터베이스를 구축할 수 있게 될 것이다. 그런데 그렇게 모은 데이터를 어떻게 활용할지 몰라 묵혀 두기만 한다면 너무나 안타까운 일이 아닐 수 없다. 이 책에서는 수집뿐만 아니라 수집한 데이터를 검색하고, 필요한 데이터를 추출하고, 일정한 규칙을 통해 자동으로 분류하거나 예측하는 등 한 걸음 더 나아간 활용법을 제안한다. 이러한 기술들을 잘 응용하면 주식과 외환 매매에 참고할 트렌드 데이터를 얻을 수 있으며, 블로그 광고에 활용하여 수익률을 올리는 등 무궁무진한 활용이 가능하다.

 

이 책의 대상 독자

  • 자바스크립트를 보다 유용하게 활용하고자 하는 분
  • 텍스트 데이터의 처리, 분류, 활용에 관심 있는 분
  • 웹에 공개되어 있는 가치 있는 정보와 활용법을 알고자 하는 분

 

이 책에서 사용하는 기술

  • 머신러닝 
  • 문자 인식
  • 형태소 분석
  • 베이지안 필터
  • GoogleCharts
  • D3.js
  • 각종 SNS의 웹 API
  • HTML 파싱
  • DOM 요소 추출
  • PhantomJS/CasperJS
  • Electron

 

지은이 소개

쿠지라 히코우즈쿠에(クジラ飛行机)

책을 기획하고, 편집하고, 디자인하는 프로덕션이며, 스마트폰, 웹 서비스, 프로그래밍, 웹 디자인 등 IT와 관련된 서적을 주로 진행하고 있다.

 

옮긴이 소개

이동규 

서강대학교와 서울대학교 대학원에서 컴퓨터학을 공부했다. 6년간 웹 개발과 빅 데이터 분석 업무를 담당했으며, 현재는 LG전자 클라우드센터 스마트데이터 팀에서 빅 데이터 엔지니어로 일하고 있다. AWS를 주로 활용하여 크롤링과 분산 처리, 가시화를 위한 웹 서비스 등을 만들었으며, 빅 데이터와 대규모 요청을 모두 다룰 수 있는 데브옵스 풀 택 소프트웨어 엔지니어가 되기 위해 노력하고 있다.

 

차례

제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 플리커의 사진 다운로드 _ 311

    플리커란? _ 311

    API 키 획득 _ 312

    플리커 API를 사용하는 프로그램 제작 _ 314

07 유튜브 동영상 다운로드 _ 319

    유튜브란 무엇인가? _ 319

    youtube-dl 설치 _ 320

    유튜브 검색 _ 322

    동영상을 검색하고 다운로드 _ 328

08 Yahoo! Finance에서 환율 및 주식 정보 수집 _ 331

    Yahoo! Finance _ 331

    FX·환율 정보 취득 _ 332

    주가 정보 취득 _ 336

09 위키피디아 다운로드 _ 339

    위키피디아란? _ 339

    위키피디아의 타이틀 데이터베이스 만들기 _ 343

    타이틀 데이터베이스 활용 _ 346

 

제7장 데이터의 분류, 예측과 머신러닝 351

01 데이터의 활용법에 관하여 _ 352

    데이터를 어떻게 활용할 것인가? _ 352

    데이터 마이닝이란? _ 352

    데이터 마이닝의 기본은 예측, 분류, 연관 규칙 추출 _ 353

    데이터 마이닝의 순서 _ 354

    대표적인 데이터 마이닝 기법 _ 355

02 베이지안 필터를 활용한 분류 _ 356

    베이지안 필터란? _ 356

    나이브 베이즈 분류 알고리즘 _ 357

    베이지안 필터 라이브러리 _ 359

03 이동 평균을 이용한 예측과 그래프 작성 _ 364

    수요 예측에 관하여 _ 364

    단순 이동 평균에 관하여 _ 365

    지수 평활법에 관하여 _ 374

04 채팅 봇과 대화하기 _ 379

    채팅 봇 _ 379

    여기서 만들 채팅 봇 _ 380

05 서포트 벡터 머신으로 문자 인식(전편) _ 395

    서포트 벡터 머신이란? _ 395

    문자 인식에 도전 _ 397

06 서포트 벡터 머신으로 문자 인식(후편) _ 409

    node-svm 사용법 _ 409

    손으로 쓴 문자를 인식하는 프로그램 만들기 _ 411

    잘못 인식하는 문제 해결 _ 420

 

제8장 데이터 시각화와 응용 427

01 구글 차트를 이용한 차트 작성 _ 428

    구글 차트란? _ 428

    파이 차트 그리기 _ 429

    막대 그래프 그리기 _ 432

    선 그래프 그리기 _ 434

    차트의 종류와 매뉴얼 _ 437

02 D3.js로 자유도 높은 차트 작성 _ 440

    D3.js ― 데이터 기반 도큐먼트 생성 라이브러리 _ 440

    D3.js 설치 _ 441

    막대 그래프 그리기 _ 442

    막대 그래프의 스케일 자동 계산 _ 445

    막대 그래프에 눈금 그리기 _ 446

    꺾은선 그래프 그리기 _ 449

03 D3.js로 지도 그리기 _ 455

    지도 정보 그리기 _ 455

    TopoJSON으로 지도 데이터 표시 _ 456

    지도 데이터 내려받기 _ 456

    데이터 형식 변환 _ 457

    D3.js로 대한민국 지도 그리기 _ 459

04 D3.js에서 파생된 라이브러리 _ 463

    D3.js를 기반으로 개발된 라이브러리 _ 463

    NVD3.js에 관하여 _ 464

    C3.js 사용하기 _ 469

 

부록1 윈도우나 Mac OS X에 개발 환경 구축 475

    Node.js 설치 _ 476

    Rhino 설치 _ 478

    Nashorn 설치 _ 480

 

부록2 HTML/XML의 PATH 파싱을 간단하게 수행 483

    테이블 내의 정보 가져오기 _ 489

    cheerio 마무리 _ 490

 

찾아보기