파이썬 웹 스크래핑 (수많은 데이터 사이에서 필요한 정보 수집하기 | 2 판)

파이썬 웹 스크래핑 (수많은 데이터 사이에서 필요한 정보 수집하기 | 2 판)

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

캐서린자멀

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

목차

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

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

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

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

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

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

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

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

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

출판사 서평

★이책에서다루는내용★
■간단한파이썬프로그래밍으로웹페이지에서데이터추출
■병렬로웹페이지를처리할수있는병렬크롤러작성
■웹사이트를크롤링하기위해링크추적
■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을기반으로예시소스를일부변경했다.
이책에서스크래핑에대한지식을많이얻기를바란다.