파이썬 웹 스크래핑 [다양한 상황 해결을 통한 웹 스크랩]
- 원서명Web Scraping with Python (ISBN 9781782164364)
- 지은이리차드 로손(Richard Lawson)
- 옮긴이김영하
- ISBN : 9788960779594
- 20,000원
- 2017년 04월 27일 펴냄 (절판)
- 페이퍼백 | 224쪽 | 188*235mm
- 시리즈 : acorn+PACKT
판매처
- 현재 이 도서는 구매할 수 없습니다.
책 소개
가장 최신 버전의 소스 파일은 여기에서 내려 받으실 수 있습니다.
https://github.com/fermat39/acornpub-python-webscraping
요약
웹 스크랩의 기본 개념과 파이썬 3를 이용해 쉽고 빠르게 웹 스크래핑하는 방법을 알려준다. 웹사이트를 다운로드해 정규식을 통해서 스크랩하는 방식부터 파이썬 라이브러리(Scrapy, Selenium)까지 점차 개념을 확장해나가 기초를 다질 수 있다. 여러 상황을 고려한 예제로 기본 원리를 테스트할 수 있으며, 배운 방법을 실제 서비스를 제공하는 웹사이트에 적용하는 방법도 배울 수 있다.
이 책에서 다루는 내용
■ 웹사이트 수집을 위한 링크 선택 방법
■ lxml을 이용한 웹사이트 데이터 추출
■ 동시에 여러 웹 페이지를 처리하기 위해 스레드를 사용하는 크롤러 제작
■ 대역폭을 줄이기 위한 다운로드 캐시
■ 자바스크립트 기반 웹사이트를 분석하는 방법
■ 폼과 세션을 처리하는 방법
■ 캡차(CAPTCHA)로 보호되는 웹사이트 처리
■ AJAX 호출 리버스 엔지니어링
■ Scrapy로 고급 스크래퍼 제작
이 책의 대상 독자
웹사이트에서 데이터를 스크랩하기 위해 믿을 만한 프로그램을 만들고자 하는 개발자를 대상으로 하는 책으로 파이썬 개발 경험이 있다고 가정하고 설명한다. 파이썬이 아니더라도 다른 프로그래밍 경험이 있어도 이 책을 읽고 이해할 수 있다.
이 책의 구성
1장, '웹 스크래핑 소개'에서는 웹 스크래핑을 소개하고 웹사이트를 수집하는 방법을 알아본다.
2장, '데이터 스크래핑'에서는 웹 페이지에서 데이터를 추출하는 방법을 알아본다.
3장, '캐시를 사용한 다운로드'에서는 결과를 캐시 처리해 다시 다운로드하지 않는 방법을 알아본다.
4장, '병렬 다운로드'에서는 동시에 다운로드해 더 빠르게 데이터를 스크랩하는 방법을 알아본다.
5장, '동적 생성 콘텐츠'에서는 동적 웹사이트에서 데이터를 추출하는 방법을 알아본다.
6장, '폼 처리'에서는 찾고자 하는 데이터에 접근하기 위해 폼을 처리하는 방법을 알아본다.
7장, '캡차(CAPTCHA) 해결'에서는 캡차 이미지에 의해 보호되는 데이터에 접근하는 방법을 알아본다.
8장, 'Scrapy'에서는 유명한 고급 Scrapy 프레임워크를 사용하는 방법을 알아본다.
9장, '실제 웹사이트 적용'에서는 지금까지 다뤄진 웹 스크래핑 기술을 실제 웹사이트에 적용해본다.
목차
목차
- 1장. 웹 스크래핑 소개
- 웹 스크래핑은 언제 필요한가?
- 웹 스크래핑은 합법적인가?
- 사전 조사
- robots.txt 확인
- Sitemap 살펴보기
- 웹사이트의 크기 추정
- 웹사이트에 사용된 웹 기술 확인
- 웹사이트 소유자 찾기
- 첫 번째 웹사이트 크롤링
- 웹사이트 다운로드
- 다운로드 재시도
- 사용자 에이전트 설정
- Sitemap 크롤러
- ID 반복 크롤러
- 링크 크롤러
- 고급 기능
- 웹사이트 다운로드
- 요약
- 2장. 데이터 스크래핑
- 웹 페이지 분석
- 웹 페이지를 스크랩하는 3가지 방법
- 정규식
- Beautiful Soup
- Lxml
- CSS 선택자
- 성능 비교
- 스크래핑 결과
- 개요
- 링크 크롤러에 스크랩 콜백 추가
- 요약
- 3장. 캐시를 사용한 다운로드
- 링크 크롤러에 캐시 기능 추가
- 디스크 캐시 사용
- 기능 구현
- 캐시 테스트
- 저장 디스크량 줄이기
- 오래된 데이터 삭제
- 디스크 캐시의 단점
- 데이터베이스 캐시
- NoSQL이란?
- 몽고DB 설치
- 몽고DB 개요
- 몽고DB 캐시 구현
- 압축
- 캐시 테스트
- 요약
- 4장. 병렬 다운로드
- 100만 개 웹 페이지
- Alexa 목록 분석
- 순차적 크롤러
- 스레드 크롤러
- 스레드와 프로세스 동작 방식
- 구현
- 상호프로세스 크롤러
- 성능
- 요약
- 100만 개 웹 페이지
- 5장. 동적 생성 콘텐츠
- 동적 웹 페이지 예제
- 동적 웹 페이지 분석
- 에지 케이스
- 동적 웹 페이지 렌더링
- PyQt와 PySide
- 자바스크립트 실행
- 웹킷으로 웹사이트 처리
- 결과 기다리기
- 렌더 클래스
- 셀레니움
- 요약
- 6장. 폼 처리'
- 로그인 폼
- 웹 브라우저에서 쿠키 가져오기
- 내용을 최신화하는 로그인 스크립트 확장
- Mechanize 모듈로 폼 처리 자동화
- 요약
- 로그인 폼
- 7장. 캡차 해결
- 계정 등록
- 캡차 이미지 로딩
- 광학 문자 인식
- 개선할 사항
- 복잡한 캡차 해결
- 캡차 처리 서비스 이용
- 9kw 시작
- 9kw CAPTCHA API
- 등록 통합
- 요약
- 계정 등록
- 8장. Scrapy
- 설치
- 프로젝트 시작
- 모델 정의
- 스파이더 생성
- 설정 조정
- 스파이더 테스트
- shell 커맨드로 스크래핑
- 결과 확인
- 크롤링 중단과 재개
- 포르티아로 시각적 스크래핑
- 설치
- 어노테이션
- 스파이더 개선
- 결과 확인
- Scrapely로 수집 자동화
- 요약
- 9장. 실제 웹사이트 적용
- 구글 검색 엔진
- 페이스북
- 웹사이트
- API
- 갭
- BMW
- 요약