간편결제, 신용카드 청구할인
카카오페이 4,000원
(최대할인 4천원 / 5만원 이상 결제, 기간 중 1회)
네이버페이 1%
(네이버페이 결제 시 적립)
NH(올원페이)카드 12% (19,800원)
(3만원 이상 결제/최대 1만원 할인)
북피니언 롯데카드 30% (15,750원)
(최대할인 3만원 / 3만원 이상 결제)
EBS 롯데카드 20% (18,000원)
(최대할인 3만원 / 3만원 이상 결제)
인터파크 NEW 우리V카드 10% (20,250원)
(최대할인 3만원 / 3만원 이상 결제)
인터파크 현대카드 7% (20,930원)
(최대할인 3만원 / 3만원 이상 결제)
Close

파이썬 웹 스크래핑 2/e : 수많은 데이터 사이에서 필요한 정보 수집하기

2013년 9월 9일 이후 누적수치입니다.

판매지수 569
?
판매지수란?
사이트의 판매량에 기반하여 판매량 추이를 반영한 인터파크 도서에서의 독립적인 판매 지수입니다. 현재 가장 잘 팔리는 상품에 가중치를 두었기 때문에 실제 누적 판매량과는 다소 차이가 있을 수 있습니다. 판매량 외에도 다양한 가중치로 구성되어 최근의 이슈도서 확인시 유용할 수 있습니다. 해당 지수는 매일 갱신됩니다.
Close
공유하기
정가

25,000원

  • 22,500 (10%할인)

    1,250P (5%적립)

할인혜택
적립혜택자동적립
추가혜택
배송정보
주문수량
감소 증가
  • 이벤트/기획전

  • 연관도서

  • 사은품(4)

출판사 서평

파이썬 3.7의 최신 기능을 사용해 웹 사이트에서 데이터를 스크래핑할 수 있는 최고의 가이드를 제공한다. 저자가 운영하는 예시 웹 사이트를 기반으로 스크래핑 테스트를 진행할 수 있다. 정적 웹 페이지에서 데이터를 추출하는 방법, 레디스와 파일을 캐싱으로 사용하는 방법, 동적 스크래핑 및 정교한 크롤러를 개발하는 방법을 다룬다. 그리고 PyQt와 Selenium을 사용하는 방법, 캡차(CAPTCHA)로 보호되는 복잡한 웹 사이트에 폼을 제출하는 방법, 병렬 다운로드를 사용하는 방법, Scrapy 라이브러리로 클래스 기반 스크래퍼를 생성하는 방법을 다룬다. 원서에서 제공하는 코드의 오타와 호환성, 예시 사이트 URL을 파이썬 3.7 기반으로 수정한 역자의 github 저장소(https://github.com/knight76/wswp)를 제공한다.

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

이 책의 대상 독자

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

이 책의 구성

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

지은이의 말

인터넷에는 매우 유용한 데이터가 존재한다. 대부분의 데이터는 공개돼 있고 무료로 접근할 수 있다. 그러나 이 데이터는 쉽게 사용할 수 없다. 웹 사이트의 구조와 스타일에 포함돼 있기 때문에 신중하게 추출해야 한다.
웹 스크래핑은 온라인에서 사용할 수 있는 풍부한 정보를 수집한 후 정보를 이해하는 수단으로 점점 더 유용해지고 있다.
이 책은 파이썬 3.7의 최신 기능을 사용해 웹 사이트에서 데이터를 스크래핑할 수 있는 최고의 가이드를 제공한다. 이 책의 초반의 여러 장에서는 정적 웹 페이지에서 데이터를 추출하는 방법을 설명한다. 레디스와 파일을 캐싱으로 사용해 시간을 절약하고 서버의 부하를 관리하는 방법을 배울 것이다.
기본적인 내용을 다룬 후에 브라우저, 크롤러, 병렬 스크래퍼를 사용해 더 정교한 크롤러를 직접 구현해 볼 것이다.
PyQt와 Selenium을 사용해 자바 스크립트를 의존하는 웹 사이트에서 언제 어떻게 데이터를 스크래핑할 수 있는지 결정할 수 있을 것이다. 캡차(CAPTCHA)로 보호되는 복잡한 웹 사이트에 폼을 제출하는 방법에 대해 더 잘 이해할 수 있을 것이다.
또한 Scrapy 라이브러리로 클래스 기반 스크래퍼를 생성하는 방법을 살펴본 후 다뤘던 모든 지식을 활용해 실제 웹 사이트를 대상으로 스크래퍼을 구현할 것이다.
이 책을 다 읽고 나면 스크래퍼, 원격 스크래핑, 모범 사례, 캡차 해결하기, 기타 관련된 많은 주제를 활용해 웹 사이트를 탐험할 수 있을 것이다.

옮긴이의 말

내가 카카오스토리 개발팀에 일할 때 스크래퍼 툴에 이상한 매력을 느꼈다. 스크래퍼 툴을 사용해 웹을 스크래핑할 때 특정 태그 정보와 사진을 추출해서 사용자들이 스크랩 정보를 글을 작성하기 전에 미리 알 수 있게 하는 매력, 왠지 마력처럼 느껴지기도 했다.
도대체 내부는 어떻게 동작하는 걸까? 옆에서 같이 스크래퍼 툴의 코드를 고쳐보기도 하고 이슈가 생기면 동료들과 같이 보기도 했다. 그렇기 때문에 이 책을 번역하게 돼 매우 기뻤다.
우리가 자주 사용하는 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
정리

저자소개

캐서린 자멀(Katharine Jarmul) [저] 신작알림 SMS신청 작가DB보기
생년월일 -
출생지 -
출간도서 0종
판매수 0권

독일 베를린에 살고 있는 데이터 과학자이자 파이썬 개발자다. 여러 기업을 대상으로 데이터 추출, 수집, 모델링과 같은 서비스를 제공하는 데이터 과학 컨설팅 회사인 Kjamistan을 운영하고 있다. 2008년부터 파이썬으로 프로그램을 개발하고 있으며, 2010년부터 파이썬으로 웹을 스크래핑하기 시작했다. 데이터 분석과 머신 러닝을 하기 위해 웹 스크래핑을 활용하는 다양한 회사에서 일한 적이 있다. 웹을 스크래핑하지 않을 때는 트위터(@kjam) 또는 블로그(https://blog.kjamistan.com)를 통해 자신의 생각과 활동을 작성하고 있다.

리차드 로손((Richard Lawson) [저] 신작알림 SMS신청 작가DB보기
생년월일 -
출생지 -
출간도서 0종
판매수 0권

호주 출신이며 멜버른 대학교에서 컴퓨터 과학을 전공했다. 졸업 후 50여 개국에서 원격으로 작업하면서 세계를 여행하며 웹 스크래핑 전문 회사를 세웠다. 유창한 에스페란토 연설자로 만다린어와 한국어로 회화가 가능하며, 오픈 소스 소프트웨어 기여와 번역에 적극적이다. 현재 옥스포드 대학에서 대학원 과정을 공부하고 있으며 여가 시간에는 자율 비행 드론 개발을 즐긴다.
링크드인(https://www.linkedin.com/in/richardpenman)에서 이력을 확인할 수 있다.

생년월일 -
출생지 -
출간도서 0종
판매수 0권

네이버, 라인(Line)을 거쳐 카카오(Kakao)에서 개발자로 일하고 있다. 현재 마흔두 살의 평범한 개발자로 다양한 도전에서 에너지를 얻으며, 개발과 실무 경험을 블로그에 기록하고 있다. 에이콘출판사의 [Ansible 설정 관리](2015), [ElasticSearch Cookbook 2/e](2016), [Redis 핵심정리](2016), [CentOS 7 리눅스 서버 쿡북](2016), [하이브 핵심정리](2017), [일래스틱서치 고급 기능의 개념과 활용](2017), [SMACK 스택을 이용한 빠른 데이터 처리 시스템](2017)을 번역했다.

이 상품의 시리즈

이 책과 내용이 비슷한 책 ? 내용 유사도란? 이 도서가 가진 내용을 분석하여 기준 도서와 얼마나 많이 유사한 콘텐츠를 많이 가지고 있는가에 대한 비율입니다.

    리뷰

    0.0 (총 0건)

    기대평

    작성시 유의사항

    평점
    0/200자
    등록하기

    기대평

    0.0

    교환/환불

    교환/환불 방법

    ‘마이페이지 > 취소/반품/교환/환불’ 에서 신청함, 1:1 문의 게시판 또는 고객센터(1577-2555) 이용 가능

    교환/환불 가능 기간

    고객변심은 출고완료 다음날부터 14일 까지만 교환/환불이 가능함

    교환/환불 비용

    고객변심 또는 구매착오의 경우에만 2,500원 택배비를 고객님이 부담함

    교환/환불 불가사유

    반품접수 없이 반송하거나, 우편으로 보낼 경우 상품 확인이 어려워 환불이 불가할 수 있음
    배송된 상품의 분실, 상품포장이 훼손된 경우, 비닐랩핑된 상품의 비닐 개봉시 교환/반품이 불가능함

    소비자 피해보상

    소비자 피해보상의 분쟁처리 등에 관한 사항은 소비자분쟁해결기준(공정거래위원회 고시)에 따라 비해 보상 받을 수 있음
    교환/반품/보증조건 및 품질보증 기준은 소비자기본법에 따른 소비자 분쟁 해결 기준에 따라 피해를 보상 받을 수 있음

    기타

    도매상 및 제작사 사정에 따라 품절/절판 등의 사유로 주문이 취소될 수 있음(이 경우 인터파크도서에서 고객님께 별도로 연락하여 고지함)

    배송안내

    • 인터파크 도서 상품은 택배로 배송되며, 출고완료 1~2일내 상품을 받아 보실 수 있습니다

    • 출고가능 시간이 서로 다른 상품을 함께 주문할 경우 출고가능 시간이 가장 긴 상품을 기준으로 배송됩니다.

    • 군부대, 교도소 등 특정기관은 우체국 택배만 배송가능하여, 인터파크 외 타업체 배송상품인 경우 발송되지 않을 수 있습니다.

    • 배송비

    도서(중고도서 포함) 구매

    2,000원 (1만원이상 구매 시 무료배송)

    음반/DVD/잡지/만화 구매

    2,000원 (2만원이상 구매 시 무료배송)

    도서와 음반/DVD/잡지/만화/
    중고직배송상품을 함께 구매

    2,000원 (1만원이상 구매 시 무료배송)

    업체직접배송상품 구매

    업체별 상이한 배송비 적용