HOME > 상세정보

상세정보

파이썬 웹 스크래핑 : 수많은 데이터 사이에서 필요한 정보 수집하기 (21회 대출)

자료유형
단행본
개인저자
Jarmul, Katharine Lawson, Richard, 저 김용환, 역
서명 / 저자사항
파이썬 웹 스크래핑 : 수많은 데이터 사이에서 필요한 정보 수집하기 / 캐서린 자멀, 리차드 로손 지음 ; 김용환 옮김
발행사항
서울 :   에이콘,   2019  
형태사항
270 p. : 삽화 ; 24 cm
원표제
Python web scraping : fetching data from the web (2nd ed.)
ISBN
9791161752525 9788960772106 (Set)
일반주기
색인수록  
일반주제명
Python (Computer program language) Downloading of data
000 00000nam c2200205 c 4500
001 000045966828
005 20190108175600
007 ta
008 190107s2019 ulka 001c kor
020 ▼a 9791161752525 ▼g 94000
020 1 ▼a 9788960772106 (Set)
040 ▼a 211009 ▼c 211009 ▼d 211009
041 1 ▼a kor ▼h eng
082 0 4 ▼a 005.133 ▼2 23
085 ▼a 005.133 ▼2 DDCK
090 ▼a 005.133 ▼b P999 2019z1
100 1 ▼a Jarmul, Katharine ▼0 AUTH(211009)139616
245 1 0 ▼a 파이썬 웹 스크래핑 : ▼b 수많은 데이터 사이에서 필요한 정보 수집하기 / ▼d 캐서린 자멀, ▼e 리차드 로손 지음 ; ▼e 김용환 옮김
246 1 9 ▼a Python web scraping : ▼b fetching data from the web ▼g (2nd ed.)
260 ▼a 서울 : ▼b 에이콘, ▼c 2019
300 ▼a 270 p. : ▼b 삽화 ; ▼c 24 cm
500 ▼a 색인수록
650 0 ▼a Python (Computer program language)
650 0 ▼a Downloading of data
700 1 ▼a Lawson, Richard, ▼e▼0 AUTH(211009)100099
700 1 ▼a 김용환, ▼e▼0 AUTH(211009)18348
900 1 0 ▼a 자멀, 캐서린, ▼e
900 1 0 ▼a 로손, 리차드, ▼e
945 ▼a KLPA

No. 소장처 청구기호 등록번호 도서상태 반납예정일 예약 서비스
No. 1 소장처 중앙도서관/제2자료실(3층)/ 청구기호 005.133 P999 2019z1 등록번호 111802203 도서상태 대출가능 반납예정일 예약 서비스 B M
No. 2 소장처 과학도서관/Sci-Info(1층서고)/ 청구기호 005.133 P999 2019z1 등록번호 121247929 도서상태 대출가능 반납예정일 예약 서비스 B M
No. 소장처 청구기호 등록번호 도서상태 반납예정일 예약 서비스
No. 1 소장처 중앙도서관/제2자료실(3층)/ 청구기호 005.133 P999 2019z1 등록번호 111802203 도서상태 대출가능 반납예정일 예약 서비스 B M
No. 소장처 청구기호 등록번호 도서상태 반납예정일 예약 서비스
No. 1 소장처 과학도서관/Sci-Info(1층서고)/ 청구기호 005.133 P999 2019z1 등록번호 121247929 도서상태 대출가능 반납예정일 예약 서비스 B M

컨텐츠정보

책소개

파이썬 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장, '모든 기술 활용하기'에서는 이 책을 통해 알게 된 웹 스크래핑 기술을 활용한다


정보제공 : Aladin

저자소개

캐서린 자멀(지은이)

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

리처드 로손(지은이)

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

김용환(옮긴이)

알티캐스트, 네이버, 라인, SK Planet을 거쳐 현재 카카오에서 개발자로 일하고 있다. 이제 마흔네 살의 평범한 개발자로 다양한 도전에서 에너지를 얻으며, 개발과 실무 경험을 블로그(http://knight76.tistory.com)에 기록하고 있다. 정보통신산업진흥원(NIPA) 산하의 소프트웨어공학포털에 개발 관련 내용을 공유했고, 각종 콘퍼런스와 세미나에서 그동안 쌓은 개발 지식을 발표하고 있다.

정보제공 : Aladin

목차

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 
__정리

관련분야 신착자료

Ramamurthy, Bina (2021)