이미 소장하고 있다면 판매해 보세요.
|
1장. 웹 스크래핑 소개
__웹 스크래핑은 언제 필요한가? __웹 스크래핑은 합법적인가? __사전 조사 ____robots.txt 확인 ____Sitemap 살펴보기 ____웹사이트의 크기 추정 ____웹사이트에 사용된 웹 기술 확인 ____웹사이트 소유자 찾기 __첫 번째 웹사이트 크롤링 ____웹사이트 다운로드 ______다운로드 재시도 ______사용자 에이전트 설정 ____Sitemap 크롤러 ____ID 반복 크롤러 ____링크 크롤러 ______고급 기능 __요약 2장. 데이터 스크래핑 __웹 페이지 분석 __웹 페이지를 스크랩하는 3가지 방법 ____정규식 ____Beautiful Soup ____Lxml ______CSS 선택자 ____성능 비교 ______스크래핑 결과 ____개요 ____링크 크롤러에 스크랩 콜백 추가 __요약 3장. 캐시를 사용한 다운로드 __링크 크롤러에 캐시 기능 추가 __디스크 캐시 사용 ____기능 구현 ____캐시 테스트 ____저장 디스크량 줄이기 ____오래된 데이터 삭제 ____디스크 캐시의 단점 __데이터베이스 캐시 ____NoSQL이란? ____몽고DB 설치 ____몽고DB 개요 ____몽고DB 캐시 구현 ____압축 ____캐시 테스트 __요약 4장. 병렬 다운로드 __100만 개 웹 페이지 ____Alexa 목록 분석 __순차적 크롤러 __스레드 크롤러 ____스레드와 프로세스 동작 방식 ____구현 ____상호프로세스 크롤러 __성능 __요약 5장. 동적 생성 콘텐츠 __동적 웹 페이지 예제 __동적 웹 페이지 분석 ____에지 케이스 __동적 웹 페이지 렌더링 ____PyQt와 PySide ____자바스크립트 실행 ____웹킷으로 웹사이트 처리 ______결과 기다리기 ______렌더 클래스 ____셀레니움 __요약 6장. 폼 처리 __로그인 폼 ____웹 브라우저에서 쿠키 가져오기 __내용을 최신화하는 로그인 스크립트 확장 __Mechanize 모듈로 폼 처리 자동화 __요약 7장. 캡차 해결 __계정 등록 ____캡차 이미지 로딩 __광학 문자 인식 ____개선할 사항 __복잡한 캡차 해결 ____캡차 처리 서비스 이용 ____9kw 시작 ______9kw CAPTCHA API ____등록 통합 __요약 8장. Scrapy __설치 __프로젝트 시작 ____모델 정의 ____스파이더 생성 ______설정 조정 ______스파이더 테스트 ____shell 커맨드로 스크래핑 ____결과 확인 ____크롤링 중단과 재개 __포르티아로 시각적 스크래핑 ____설치 ____어노테이션 ____스파이더 개선 ____결과 확인 __Scrapely로 수집 자동화 __요약 9장. 실제 웹사이트 적용 __구글 검색 엔진 __페이스북 ____웹사이트 ____API __갭 __BMW __요약 |
|
★ 이 책에서 다루는 내용 ★
■ 웹사이트 수집을 위한 링크 선택 방법 ■ lxml을 이용한 웹사이트 데이터 추출 ■ 동시에 여러 웹 페이지를 처리하기 위해 스레드를 사용하는 크롤러 제작 ■ 대역폭을 줄이기 위한 다운로드 캐시 ■ 자바스크립트 기반 웹사이트를 분석하는 방법 ■ 폼과 세션을 처리하는 방법 ■ 캡차(CAPTCHA)로 보호되는 웹사이트 처리 ■ AJAX 호출 리버스 엔지니어링 ■ Scrapy로 고급 스크래퍼 제작 ★ 이 책의 대상 독자 ★ 웹사이트에서 데이터를 스크랩하기 위해 믿을 만한 프로그램을 만들고자 하는 개발자를 대상으로 하는 책으로 파이썬 개발 경험이 있다고 가정하고 설명한다. 파이썬이 아니더라도 다른 프로그래밍 경험이 있어도 이 책을 읽고 이해할 수 있다. ★ 이 책의 구성 ★ 1장, '웹 스크래핑 소개'에서는 웹 스크래핑을 소개하고 웹사이트를 수집하는 방법을 알아본다. 2장, '데이터 스크래핑'에서는 웹 페이지에서 데이터를 추출하는 방법을 알아본다. 3장, '캐시를 사용한 다운로드'에서는 결과를 캐시 처리해 다시 다운로드하지 않는 방법을 알아본다. 4장, '병렬 다운로드'에서는 동시에 다운로드해 더 빠르게 데이터를 스크랩하는 방법을 알아본다. 5장, '동적 생성 콘텐츠'에서는 동적 웹사이트에서 데이터를 추출하는 방법을 알아본다. 6장, '폼 처리'에서는 찾고자 하는 데이터에 접근하기 위해 폼을 처리하는 방법을 알아본다. 7장, '캡차(CAPTCHA) 해결'에서는 캡차 이미지에 의해 보호되는 데이터에 접근하는 방법을 알아본다. 8장, 'Scrapy'에서는 유명한 고급 Scrapy 프레임워크를 사용하는 방법을 알아본다. 9장, '실제 웹사이트 적용'에서는 지금까지 다뤄진 웹 스크래핑 기술을 실제 웹사이트에 적용해본다. ★ 지은이의 말 ★ 인터넷에는 정말 유용할 데이터들을 갖고 있으며, 이 데이터는 공개돼 있고 공짜로 접근할 수 있다. 그러나 이런 데이터는 쉽게 재사용하기 어렵다. 웹사이트의 구조와 스타일에 맞게 구성돼야 하고 유용하게 추출돼야 한다. 웹 페이지에서 데이터를 추출하는 과정은 웹 스크래핑이라고 알려져 있고 온라인상에서 이용 가능한 정보들로 계속해서 유용하게 되고 있다. ★ 옮긴이의 말★ 요즘도 수집하는 사람이 있을지 모르겠지만, 드라마 〈응답하라 1988〉의 시대를 기억하는 사람이라면 좋아하는 연예인의 기사를 예쁘게 오려 수집한 기억이 있으리라. 신문 및 잡지라는 큰 정보의 덩어리에서 원하는 부분을 칼이나 가위로 오려 노트에 붙인 것이다. 이런 아날로그적인 방법이 현대에 와서는 디지털 방식으로 전환되고 있다. 개인적으로 스플렁크(Splunk)라는 빅데이터 플랫폼의 업무를 담당하면서 자료의 수집 및 저장에 대한 관심이 많아졌다. 요즘 각종 서비스들이 데이터 공유를 위해 API를 제공하면서 수집이 쉬워졌다. 하지만 원하는 데이터를 얻기에는 제한적이기에 웹 크롤링(Web Crawling)을 통해 수집해서 웹 스크래핑(Web Scraping)으로 원하는 부분을 추출하는 과정이 필요하다. 이 책은 웹 스크래핑에 대한 법적 문제를 먼저 다루고 기술적인 방법의 가장 기초적인 단계에서 점점 발전시켜 Scrapy라는 수집 전문 프레임워크까지 다룬다. 제로 웹 페이지에서 발생할 수 있는 상황에 대한 모든 부분을 다룬다. 많은 웹 페이지를 다운로드하면서 캡차(Captcha)나 로그인, 동적 데이터 처리 등 책에서 제시한 경우를 따라 하다 보면 어느덧 웹 스크래핑에 자신감을 느끼게 될 것이다. 이 책은 독자가 파이썬에 대한 기본 지식이 있다고 가정하기 때문에 파이썬 언어 자체에 대한 설명은 없다. 책 자체는 얇지만 내용은 아주 풍부하다. 이 한국어판이 나오기까지 정말 많은 시간이 걸렸다. 파이썬 2로 만들어진 내용을 파이썬 3로 바꾸면서 가급적이면 실행되도록 수정했지만 실행 및 개선 사항이 있다면, 언제든지 연락 바란다. |