book.jayu.org
크롤링 핵심 가이드

크롤링 핵심 가이드

타케조에 나오키 (지은이), 시마모토 타카코 (지은이), 타도코로 슌스케 (지은이), 하순기노[실은 하기노] 타카히로 (지은이), 카와카미 모모코 (지은이), 윤인성 (옮긴이)

위키북스·2018-07-12

  • 278쪽
  • 175×235mm
  • 총류
  • KDC 005.76

로그인하면 내 서재에 추가할 수 있어요.

책 소개

웹 애플리케이션, 웹 서비스를 개발/운용하는 엔지니어라면, HTML/HTTP와 웹 서버 등의 웹 기술과 관련된 기초 지식을 알고 있어야 한다. 이 책에서는 실제 서비스에서 대규모 웹 크롤러를 개발/운용해 본 경험을 기반으로, 크롤러를 지탱하는 HTTP, 문자 코드, HTML, 인증, Ajax/JSON 등 웹 엔지니어가 꼭 기억해야 하는 포인트와 테크닉을 설명한다. 크롤러의 입장에서 보는 웹 사이트의 구조와 그 실정에 맞는, 실용적이고 효율적인 크롤링 방법을 설명한다. - 실제 예를 바탕으로 HTTP, HTML 등의 웹과 관련된 내용을 깊게 알 수 있다. - 대규모 크롤러를 개발/운용하는 노하우를 알 수 있다. - 웹 사이트 운영자(크롤링 당하는 입장)도 크롤러와 관련된 지식을 얻을 수 있다.

목차펼치기

1장: 크롤러를 지탱하는 기술 1-1 크롤러란? 2 1-2 크롤러의 구조 3 크롤링 3 스크레이핑 4 1-3 크롤러와 웹 기술 5 데이터 저장하기 5 웹 크롤러가 지켜야 하는 규칙 6 크롤러가 직면한 과제 9 1-4 크롤러 만들어보기 10 Java로 간단한 크롤러 구현하기 11 크롤링/스크레이핑 전용 서비스와 도구 16 1-5 개발을 지원하는 도구 18 curl 19 브라우저의 개발자 도구 22 2장: HTTP 이해하기 2-1 HTTP 개요 25 HTTP 통신 내용 보기 27 2-2 HTTP 메서드 사용 구분하기 28 일부 메서드가 지원되지 않는 경우 31 메서드의 사용 방법이 적절하지 않은 경우 32 URL 인코드 방식의 차이에 따른 문제 34 2-3 믿을 수 없는 응답 상태 37 상태 코드에 따라 적절히 처리하기 37 오류가 발생했는데도 200을 응답하는 경우 39 페이지가 존재하지 않는 경우의 리다이렉트 41 서버에 접속할 수 없는 경우 42 서버 오류가 발생했을 경우의 일반적인 대처 방법 42 리다이렉트의 미묘한 의미 차이 46 2-4 HTTP 헤더 조정하기 51 크롤러의 사용자 에이전트 54 쿠키가 없으면 크롤링할 수 없는 웹 사이트 58 국제화를 지원하는 웹 사이트 크롤링하기 60 2-5 프록시 서버를 경유해서 크롤링하기 62 프록시 사용 시 HTTP 통신 내용 확인하기 64 크롤러에서 프록시 사용하기 64 2-6 SSL 통신 때 발생하는 오류 66 SSL 버전 66 SSL 지원 사이트 크롤링하기 67 자바의 AES 키 길이 문제 70 2-7 HTTP/2 72 자바로 HTTP/2 다루기 74 2-8 정리 74 3장: 문자 깨짐 해결하기 3-1 크롤링과 문자 코드 76 3-2 왜 문자가 깨질까? 78 컴퓨터와 문자 78 문자 깨짐과 멀티 바이트 문자 80 3-3 클라이언트와 서버 간의 문자 깨짐 81 문자 깨짐이 일어나는 위치 81 애플리케이션과 데이터베이스 85 텍스트 파일 읽고 쓰기 86 3-4 적절하게 문자 코드 다루기 88 크롤링과 문자 코드 89 인덱싱과 문자 코드 91 3-5 대표적인 문자 코드 95 UTF-8 96 EUC-KR 96 3-6 문자 코드와 관련해 발생할 수 있는 함정 97 문자 코드 믿지 말기 97 데이터베이스와 초밥① - 사라진 초밥 문제 99 데이터베이스와 초밥② - 그림 문자 검색 문제 101 트러블 슈팅을 위한 팁 104 3-7 문자 코드 추정하기 108 juniversalchardet 110 ICU4J 113 자바 외 언어의 라이브러리 114 3-8 정리 116 4장: 스크레이핑 테크닉 4-1 HTML에서 데이터 추출하기 118 정규 표현식 118 XPath 119 CSS 선택자 122 HTML 이외의 데이터 126 4-2 CSS 선택자 사용하기 127 지정한 위치의 요소 추출하기 - nth-child() 127 텍스트 노드를 문자열로 검색하기 - contains() 129 텍스트 노드를 정규 표현식으로 검색하기 - matched() 129 자식 요소를 제외하고 검색하기 - containsOwn()과 matchesOwn() 131 속성으로 검색하기 131 4-3 스크레이핑한 데이터 가공하기 137 [예1] alt 속성에서 데이터 추출하기 137 [예2] 주소 추출하기 138 웹 페이지의 메타 데이터 141 4-4 메타 데이터 활용하기 141 구조화 마크업 148 4-5 정리 164 5장: 인증하기 5-1 인증이 필요한 페이지를 크롤링하는 이유 166 인증이 필요한 웹 사이트를 크롤링할 때 지켜야 할 사항 168 5-2 다양한 인증 방식과 크롤링 방법 170 HTTP 인증 171 입력 양식 기반 인증 175 2단계 인증 188 CAPTCHA를 사용한 BOT 대책 190 5-3 웹 API를 사용해 정보 추출하기 191 접근키로 인증하기 192 OAuth 2.0 193 인증과 허가 200 pac4j를 사용해 GitHub OAuth 사용해 보기 201 5-4 정리 205 6장: 크롤링 응용 테크닉 6-1 크롤러가 지켜야 하는 매너 207 요청 수와 요청 간격 제한 207 크롤링 제한하기 208 6-2 필요한 페이지만 크롤링하기 216 페이징 217 의외로 잘 사용하지 않는 사이트맵 XML 222 RSS 또는 Atom을 기반으로 사이트의 변경 정보 추출하기 228 콘텐츠를 캐시해서 통신 줄이기 233 gzip 압축으로 응답 빠르게 만들기 236 6-3 제거된 콘텐츠 판정하기 238 콘텐츠에 명시적으로 적혀 있는 기간 사용하기 239 대상 사이트를 정기적으로 크롤링하기 240 인덱스한 URL을 정기적으로 확인하기 240 목록 페이지에 URL이 존재하지 않는 경우 삭제된 것으로 판정하기 242 남은 문제 244 6-4 웹 사이트의 변경 시점 및 변경 빈도 학습하기 245 명시된 변경일 찾기 245 오류 245 변경 빈도에 따라 크롤링 빈도 조정하기 246 크롤링 소요 시간을 기반으로 크롤러의 리소스 사용량 조절하기 246 6-5 가장 효율적인 방법 = 크롤링하지 않기 247 6-6 정리 247 7장: 자바스크립트 가지고 놀기 7-1 Ajax와 SPA 249 자바스크립트를 사용한 웹 페이지의 예 250 크롤러의 관점에서 살펴본 자바스크립트 255 7-2 자바스크립트와의 싸움 피하기 256 자바스크립트의 동작 재현하기 256 크롤러를 위한 정보 찾기 257 모바일 사이트 258 7-3 브라우저 조작과 도구 활용하기 263 Selenium WebDriver 사용해 보기 263 7-4 정리 276

출처: 국립중앙도서관 서지정보

리뷰 남기기

로그인하면 리뷰를 남길 수 있어요.

리뷰 0개

아직 리뷰가 없어요.