장바구니 담기 close

장바구니에 상품을 담았습니다.

파이썬 웹 스크래핑 2/e

파이썬 웹 스크래핑 2/e

  • 캐서린자멀
  • |
  • 에이콘출판
  • |
  • 2018-12-31 출간
  • |
  • 272페이지
  • |
  • 188 X 235 X 16 mm
  • |
  • ISBN 9791161752525
판매가

25,000원

즉시할인가

22,500

배송비

무료배송

(제주/도서산간 배송 추가비용:3,000원)

수량
+ -
총주문금액
22,500

※ 스프링제본 상품은 반품/교환/환불이 불가능하므로 신중하게 선택하여 주시기 바랍니다.

출판사서평




★ 이 책에서 다루는 내용 ★
■ 간단한 파이썬 프로그래밍으로 웹 페이지에서 데이터 추출
■ 병렬로 웹 페이지를 처리할 수 있는 병렬 크롤러 작성
■ 웹 사이트를 크롤링하기 위해 링크 추적
■ HTML에서 특징 추출
■ 재사용하기 위해 다운로드한 HTML 캐싱
■ 가장 빠른 크롤러 결정을 위해 병렬 모델 비교
■ 자바 스크립트 기반 웹 사이트 파싱 방법
■ 폼 및 세션으로 상호 작용하는 방법

★ 이 책의 대상 독자 ★

독자가 이전에 프로그래밍을 해본 경험이 있다는 것을 전제로 작성됐고 프로그래밍을 처음 접하는 초보자에게는 적합하지 않을 가능성이 높다. 웹 스크래핑 예시를 살펴보려면 파이썬에 능숙해야 하고 pip 커맨드를 실행해 모듈을 설치해야 한다.
그리고 웹 페이지가 어떻게 HTML로 작성되는지, 자바 스크립트로 업데이트되는지에 대한 지식이 있다고 가정한다. HTTP, CSS, AJAX, WebKit, Redis에 대해서 알고 있다면 유용할 수 있지만 필수는 아니며 개별 기술이 필요할 때 소개할 것이다.

★ 이 책의 구성 ★

1장, ‘웹 스크래핑 소개’에서는 웹 스크래핑이 무엇인지와 웹 사이트를 크롤링하는 방법을 소개한다.
2장, ‘데이터 스크래핑하기’에서는 여러 라이브러리를 사용해 웹 페이지에서 데이터를 추출하는 방법을 설명한다.
3장, ‘다운로드 캐싱’에서는 결과를 캐싱해 다시 다운로드하지 않는 방법을 설명한다.
4 장, ‘병렬 다운로드’에서는 웹 사이트를 병렬로 다운로드해 데이터를 빠르게 스크래핑하는 방법을 설명한다.
5장, ‘동적 콘텐츠’에서는 여러 방법을 통해 동적 웹 사이트에서 데이터를 추출하는 방법을 설명한다.
6장, ‘폼에서 상호 작용하기’에서는 검색과 로그인할 때 입력과 탐색과 같은 폼에서 어떻게 상호 작용하는지 설명한다.
7장, ‘캡차 해결하기’에서 캡차 이미지로 보호된 데이터에 접근하는 방법을 설명한다.
8장, ‘Scrapy’에서는 빠르게 병렬로 스크래핑할 수 있는 Scrapy 크롤링 스파이더를 사용하는 방법과 웹 스크래퍼를 개발하는 데 도움이 되는 Portia 웹 인터페이스 사용 방법을 설명한다.
9장, ‘모든 기술 활용하기’에서는 이 책을 통해 알게 된 웹 스크래핑 기술을 활용한다

★ 옮긴이의 말 ★

내가 카카오스토리 개발팀에 일할 때 스크래퍼 툴에 이상한 매력을 느꼈다. 스크래퍼 툴을 사용해 웹을 스크래핑할 때 특정 태그 정보와 사진을 추출해서 사용자들이 스크랩 정보를 글을 작성하기 전에 미리 알 수 있게 하는 매력, 왠지 마력처럼 느껴지기도 했다.
도대체 내부는 어떻게 동작하는 걸까? 옆에서 같이 스크래퍼 툴의 코드를 고쳐보기도 하고 이슈가 생기면 동료들과 같이 보기도 했다. 그렇기 때문에 이 책을 번역하게 돼 매우 기뻤다.
우리가 자주 사용하는 SNS(카카오톡, 페이스북, 카카오스토리, 라인)를 살펴보면, 링크를 보낼 때 링크만 보내지 않는다. 적당한 정보와 사진이 같이 대화창 또는 피드에 노출된다.
사실 스크래핑 기술을 알면 쉽게 구현할 수 있지만 스크래핑 기술을 배우고 싶어도 서버 관리자가 스크래핑 기술을 쓰지 못하도록 제한을 거는 경우가 많다. 그래서 이 책은 정말 특별하다. 저자가 운영 중인 예시 웹 사이트를 기반으로 웹 스크래핑 기술을 배울 수 있기 때문에 마음껏 예시를 테스트할 수 있다.

이 책은 크롤링과 스크래핑이 무엇인지 설명하고 법적 이슈를 다루며 시작한다. 웹 사이트에서 데이터를 스크래핑할 수 있는 최고의 가이드를 제공한다. 저자가 운영하는 예시 웹 사이트를 기반으로 스크래핑 테스트를 진행할 수 있다. 정적 웹 페이지에서 데이터를 추출하는 방법, 레디스와 파일을 캐싱으로 사용하는 방법, 동적 스크래핑 및 정교한 크롤러를 개발하는 방법을 다룬다. 그리고 PyQt와 Selenium을 사용하는 방법, 캡차(CAPTCHA)로 보호되는 복잡한 웹 사이트에 폼을 제출하는 방법, 병렬 라이브러리를 사용하는 방법, Scrapy 라이브러리로 클래스 기반 스크래퍼를 생성하는 방법을 다룬다.
이 책은 독자가 파이썬에 대한 기본 지식이 있다고 가정하기 때문에 파이썬 언어에 대한 설명은 없다. 하지만 Golang, 자바, 스칼라 등과 같은 언어에 대한 지식이 있다면 도전해 볼 수 있을 것이다.
원서의 버전은 파이썬 3.4 기준이었지만 번역서에서는 최신 버전인 파이썬 3.7과 바뀐 예시 사이트 URL을 기반으로 예시 소스를 일부 변경했다.
이 책에서 스크래핑에 대한 지식을 많이 얻기를 바란다.


목차


1장. 웹 스크래핑 소개
__웹 스크래핑이 유용한 시점은 언제일까?
__웹 스크래핑은 합법적인가?
__파이썬 3
__웹 사이트 조사
____robots.txt 확인하기
____사이트맵 확인하기
____웹 사이트 규모 추정하기
____웹 사이트에 사용하는 기술을 식별하기
____웹 사이트의 소유자 찾기
__첫 번째 웹 사이트 크롤링하기
____스크래핑과 크롤링
____웹 페이지 다운로드하기
________다운로드 재처리하기
________사용자 에이전트 설정하기
____사이트맵 크롤러
____ID 반복 크롤러
____링크 크롤러
________고급 기능
____requests 라이브러리 사용하기
__정리

2장. 데이터 스크래핑하기
__웹 페이지 분석하기
__웹 페이지를 스크래핑하는 세 가지 방법
____정규식
____Beautiful Soup
____lxml
__CSS 선택자와 브라우저 콘솔
__Xpath Selectors
____LXML 및 패밀리 트리
__성능 비교
__스크래핑 결과
____스크래핑 개요
____링크 크롤러에 스크래핑 콜백 추가하기
__정리

3장. 다운로드 캐싱
__언제 캐싱을 사용할까?
__링크 크롤러에 캐싱 기능 추가하기
__디스크 캐싱
____DiskCache 구현
____캐싱 테스트하기
____디스크 공간 절약하기
____오래된 캐싱 데이터 만료하기
____DiskCache의 단점
__키-값 저장소 캐싱
____키-값 저장소란
____레디스 설치
____레디스 소개
____레디스 캐싱 구현
____압축
____캐싱 테스트
____requests-cache 탐색
__정리

4장. 병렬 다운로드
__100만 웹 페이지
알렉사 목록 파싱
__순차적인 크롤러
__스레드 크롤러
__스레드와 프로세스의 동작 방법
____멀티 스레드 크롤러 구현
____멀티 프로세싱 크롤러
__성능
____파이썬 멀티 프로세싱과 GIL
__정리

5장. 동적 콘텐츠
__동적 웹 페이지의 예
__동적 웹 페이지 리버스 엔지니어링
____엣지 케이스
__동적 웹 페이지 렌더링하기
____PyQt or PySide
________Qt로 디버깅하기
____자바스크립트 실행하기
____웹킷을 사용한 웹 사이트의 상호 작용
________결과 기다리기
__렌더링 클래스
____Selenium
________Selenium과 헤드리스 브라우저
__정리

6장. 폼에서 상호 작용하기
__로그인 폼
____웹 브라우저에서 쿠키를 로드하기
__로그인 스크립트를 확장해 콘텐츠 변경하기
__Selenium으로 폼 자동화하기
__웹 스크래핑을 ‘인간’이 하는 것처럼 보여주는 방법
__정리

7장. 캡차 해결하기
__계정 등록하기
____캡차 이미지 로딩하기
__광학 문자 인식
____추가 개선 사항
__복잡한 캡차 해결
__캡차 해결 서비스 사용하기
____9kw 시작하기
________9kw 캡차 API
____에러 알림
____등록과 통합하기
__캡차와 머신 러닝
__정리

8장. Scrapy
__Scrapy 설치
__프로젝트 시작하기
____모델 정의하기
____스파이더 생성하기
________설정 튜닝
________스파이더 테스트
__여러 스파이더 타입
__쉘 커맨드로 스크래핑하기
____결과 확인하기
____크롤링 중단과 재개
________Scrapy 성능 튜닝
__Portia를 사용해 시각적으로 스크래핑하기
____설치
____주석
____스파이더 실행하기
____결과 확인하기
__Scrapely로 자동화된 스크래핑
__정리

9장. 모든 기술 활용하기
__구글 검색엔진
__페이스북
____웹 사이트
____페이스북 API
__GAP
__BMW
__정리

교환 및 환불안내

도서교환 및 환불
  • ㆍ배송기간은 평일 기준 1~3일 정도 소요됩니다.(스프링 분철은 1일 정도 시간이 더 소요됩니다.)
  • ㆍ상품불량 및 오배송등의 이유로 반품하실 경우, 반품배송비는 무료입니다.
  • ㆍ고객님의 변심에 의한 반품,환불,교환시 택배비는 본인 부담입니다.
  • ㆍ상담원과의 상담없이 교환 및 반품으로 반송된 물품은 책임지지 않습니다.
  • ㆍ이미 발송된 상품의 취소 및 반품, 교환요청시 배송비가 발생할 수 있습니다.
  • ㆍ반품신청시 반송된 상품의 수령후 환불처리됩니다.(카드사 사정에 따라 카드취소는 시일이 3~5일이 소요될 수 있습니다.)
  • ㆍ주문하신 상품의 반품,교환은 상품수령일로 부터 7일이내에 신청하실 수 있습니다.
  • ㆍ상품이 훼손된 경우 반품 및 교환,환불이 불가능합니다.
  • ㆍ반품/교환시 고객님 귀책사유로 인해 수거가 지연될 경우에는 반품이 제한될 수 있습니다.
  • ㆍ스프링제본 상품은 교환 및 환불이 불가능 합니다.
  • ㆍ군부대(사서함) 및 해외배송은 불가능합니다.
  • ㆍ오후 3시 이후 상담원과 통화되지 않은 취소건에 대해서는 고객 반품비용이 발생할 수 있습니다.
반품안내
  • 마이페이지 > 나의상담 > 1 : 1 문의하기 게시판 또는 고객센터 1800-7327
교환/반품주소
  • 경기도 파주시 문발로 211 1층 / (주)북채널 / 전화 : 1800-7327
  • 택배안내 : CJ대한통운(1588-1255)
  • 고객님 변심으로 인한 교환 또는 반품시 왕복 배송비 5,000원을 부담하셔야 하며, 제품 불량 또는 오 배송시에는 전액을 당사에서부담 합니다.