본문 바로가기

리디 접속이 원활하지 않습니다.
강제 새로 고침(Ctrl + F5)이나 브라우저 캐시 삭제를 진행해주세요.
계속해서 문제가 발생한다면 리디 접속 테스트를 통해 원인을 파악하고 대응 방법을 안내드리겠습니다.
테스트 페이지로 이동하기

파이썬으로 웹 크롤러 만들기(2판) 상세페이지

컴퓨터/IT 개발/프로그래밍

파이썬으로 웹 크롤러 만들기(2판)

초간단 나만의 웹 크롤러로 원하는 데이터를 가져오는 방법
소장종이책 정가25,000
전자책 정가20%20,000
판매가20,000
파이썬으로 웹 크롤러 만들기(2판) 표지 이미지

파이썬으로 웹 크롤러 만들기(2판)작품 소개

<파이썬으로 웹 크롤러 만들기(2판)>

웹 어디서든 내가 원하는 데이터를 쏙쏙쏙

웹에 존재한다면 그것이 어떤 형태이든 데이터로 추출할 수 있다. 필요한 무기는 이 책과 파이썬뿐. BeautifulSoup, 셀레니움, 테서랙트 등 강력한 파이썬 라이브러리 사용법과 함께 API, 인증, 이미지 및 텍스트 인식, 로그인 처리 등 웹 크롤링의 기초부터 고급 기법까지 종합적으로 다루는 유일한 책. 실제 업무와 생활에 적용할 수 있는 예제가 가득하다. 2판은 예제를 추가 및 업데이트했고 모던 웹에서 거의 모든 종류의 데이터를 가져오는 방법을 포괄적으로 다룬다.


[추천사]

이 책에 나오는 예제와 도구를 이용해 여러 반복 업무를 자동화할 수 있었고, 그 시간을 더 흥미로운 일에 쓸 수 있었다. 결과를 바로 확인할 수 있고, 실제 업무나 생활에서 접하는 문제를 예제로 설명하여 빠르고 쉽게 읽을 수 있었다.
_ 에릭 반위크, 프랭클린 올린 공과대학교 컴퓨터 엔지니어

웹에서 데이터를 모으고 싶다는 생각을 한 번이라도 해봤다면 이 책을 읽어보길 권한다. 이미 크롤링을 해본 적이 있다면 더욱 도움이 될 것이다. 크롤링을 막는 페이지를 만난 적이 있다면? 이 책은 크롤러가 ‘인간’처럼 보이게 하는 법도 설명한다.
_ 클리프 추, Carousell 데이터 분석가


출판사 서평

복잡 다양한 웹에서 우아하게 데이터를 수집하는 방법 A to Z

우리는 생활 속의 많은 부분이 인터넷에서 이루어지는 시대에 살고 있습니다. 그 어느 때보다 많은 데이터로 넘쳐나는 웹 세상에서 필요한 데이터를 가져와 분석하는 일의 중요성도 커졌습니다. 인터넷을 활보하며 데이터를 수집하는 프로그램을 웹 크롤러 혹은 웹 스크레이퍼라고 합니다. 웹 크롤러는 데이터 수집을 자동화하므로 비즈니스 의사 결정에 큰 도움이 되고, 웹사이트 스캐너로 활용할 수도 있어 보안 분야에서도 사용됩니다.
웹 크롤링은 인증 같은 웹 기술에 대한 이해는 물론, 데이터 정제, DB 저장 등 여러 기술에 대한 지식이 필요한 분야에 속합니다. 따라서 프로그래밍 스킬을 향상하는 데에 아주 좋은 주제이며, 과거에는 프로그래밍 전문가만이 웹 크롤러를 만들 수 있었습니다. 하지만 파이썬이라는 배우기 쉬운 언어와 쉽게 쓸 수 있는 각종 라이브러리들이 등장하며 이러한 장벽은 무너졌습니다. 기업 사례뿐만 아니라 음원 차트 추출하기, 서울의 기온 데이터 추출하기, 게시판 문서 다운로더 등 주위를 둘러보면 의외로 많은 생활 속 사례를 찾을 수 있습니다.
『파이썬으로 웹 크롤러 만들기(2판)』는 웹 크롤링이라는 주제 하나에 집중하는 책입니다. 업무상 웹 크롤러를 만들다 푹 빠진 나머지 회사를 나와서도 계속 웹 크롤러를 만들고 있는 개발자가 썼습니다. 파이썬과 라이브러리를 이용하여 아주 간단한 웹 크롤러를 만드는 것으로 시작해서, HTML, API 등 웹 기술의 기초부터 데이터 정제 및 저장, 자연어 처리, 이미지 및 텍스트 인식 등 고급 기법까지 종합적으로 살펴봅니다.
책의 1부는 파이썬과 함께 BeautifulSoup, 스크레이피 같은 라이브러리를 이용하여 아주 간단하게 웹 크롤러를 만들어보며 시작합니다. 나아가 API를 이용한 수집, 데이터를 MySQL로 저장하는 방법, CSV, PDF, 워드 파일을 분석하는 방법까지 필요에 따라 다양한 라이브러리를 활용하여 웹 크롤러를 구현하는 방법에 집중합니다. 위키백과를 크롤링하며 ‘케빈 베이컨의 여섯 다리’(과연 전 세계 사람은 여섯 다리만 거치면 연결될까요?) 문제를 풀어보는 예제도 있습니다.
2부는 웹 크롤링을 둘러싼 더욱 흥미로운 주제와 기법을 다룹니다. 웹에서 가져온 지저분한 데이터를 정돈하고 정제하는 방법(오픈리파인), 자연어 처리(NLTK), 폼과 로그인 뚫기(requests), 자바스크립트로 만든 동적 페이지 수집하기(셀레니움), 이미지 처리(필로) 및 텍스트 인식(테서랙트), 웹사이트 테스트(unittest), 원격 크롤링(토어) 등 고급 기법과 라이브러리 사용법을 살펴봅니다. 특히 텍스트 인식은 CAPTCHA, 즉 자동 가입 방지 문자를 우회하는 데 유용하며, 크롤링을 막는 방해물을 뚫기 위한 ‘사람처럼 보이기’ 기법은 아예 한 장을 할애해서 자세히 소개합니다.
오늘날 데이터가 넘쳐나는 웹에서 웹 크롤러로 할 수 있는 일은 무궁무진합니다. 필요한 것은 약간의 파이썬 프로그래밍 능력 하나뿐입니다. 나머지는 이 책에서 배울 수 있습니다. 웹 크롤링을 적용하여 업무를 자동화하고 생활 속에서 유용한 통찰을 찾는 데 이 책이 큰 도움이 되리라 믿습니다. 복잡 다양한 웹 세상에서 우아하게 데이터를 수집하고 싶은, ‘일상의 데이터 분석가’를 꿈꾸는 이들에게 이 책을 권합니다.
이 책은 많은 사랑을 받은 1판에 이어 출간된 원서 2판을 기반으로 합니다. 예제를 추가 및 업데이트했고 모던 웹에서 거의 모든 종류의 데이터를 가져오는 방법을 포괄적으로 다룹니다.


저자 프로필

라이언 미첼 Ryan Mitchell

  • 학력 하버드 대학교 소프트웨어 엔지니어링 석사
    프랭클린 W. 올린 공과대학교 학사
  • 경력 헤지서브(HedgeServ) 시니어 개발자

2017.01.23. 업데이트 작가 프로필 수정 요청


저자 소개

저자_ 라이언 미첼
웹 크롤링, 보안, 데이터 과학에 관심이 많은 개발자. 현재 글로벌 펀드사 헤지서브(HedgeServ)에서 시니어 개발자로 근무하고 있습니다. 프랭클린 W. 올린 공과대학교를 졸업했고 하버드 대학교에서 소프트웨어 엔지니어링 석사 과정을 밟았습니다. 어바인(Abine)에서 웹 크롤러와 봇을 만들었고, 링크드라이브(LinkeDrive)에서는 API 및 데이터 분석 도구를 만들었습니다. 금융업 및 유통업 분야에서 웹 크롤링 프로젝트 컨설팅을 하고 있고, 교육과 강연 활동도 활발하게 펼치고 있습니다. 본서 외 저서로 『Instant Web Scraping with Java』(Packt, 2013)가 있습니다.

역자_ 한선용
웹 표준과 자바스크립트에 관심이 많은 번역가. 2008년부터 웹 관련 일을 했으며, ‘WCAG 2.0을 위한 일반적 테크닉’ 등의 문서를 번역해 웹에 올렸습니다. 번역서로 『한 권으로 끝내는 Node & Express』(2015), 『자바스크립트를 말하다』(2014), 『데이터 시각화를 위한 데이터 인사이트』(2014), 『모던 웹을 요리하는 초간편 HTML5 Cookbook』(2012), 『Head First jQuery』(2012), 『jQuery Mobile』(2012), 『자바스크립트 성능 최적화』(2011, 이상 한빛미디어), 『자바스크립트 프로그래밍』(2013), 『처음 배우는 jQuery』(2012), 『에릭 마이어의 CSS 노하우』(2011, 이상 인사이트) 등이 있습니다.

목차

Part I 스크레이퍼 제작

CHAPTER 1 첫 번째 웹 스크레이퍼
1.1 연결
1.2 BeautifulSoup 소개
__1.2.1 BeautifulSoup 설치
__1.2.2 BeautifulSoup 실행
__1.2.3 신뢰할 수 있는 연결과 예외 처리

CHAPTER 2 고급 HTML 분석
2.1 닭 잡는 데 소 잡는 칼을 쓸 필요는 없습니다
2.2 다시 BeautifulSoup
__2.2.1 find()와 findAll()
__2.2.2 다른 BeautifulSoup 객체
__2.2.3 트리 이동
2.3 정규 표현식
2.4 정규 표현식과 BeautifulSoup
2.5 속성에 접근하기
2.6 람다 표현식

CHAPTER 3 크롤링 시작하기
3.1 단일 도메인 내의 이동
3.2 전체 사이트 크롤링
__3.2.1 전체 사이트에서 데이터 수집
3.3 인터넷 크롤링

CHAPTER 4 웹 크롤링 모델
4.1 객체 계획 및 정의
4.2 다양한 웹사이트 레이아웃 다루기
4.3 크롤러 구성
__4.3.1 검색을 통한 사이트 크롤링
__4.3.2 링크를 통한 사이트 크롤링
__4.3.3 여러 페이지 유형 크롤링
4.4 웹 크롤러 모델에 대한 생각

CHAPTER 5 스크레이피
5.1 스크레이피 설치
__5.1.1 새 스파이더 초기화
5.2 간단한 스크레이퍼 작성하기
5.3 규칙에 의한 스파이더링
5.4 항목 만들기
5.5 항목 출력하기
5.6 파이프라인
5.7 스크레이피 로깅
5.8 더 읽을 거리

CHAPTER 6 데이터 저장
6.1 미디어 파일
6.2 데이터를 CSV로 저장
6.3 MySQL
__6.3.1 MySQL 설치
__6.3.2 기본 명령어
__6.3.3 파이썬과 통합
__6.3.4 데이터베이스 테크닉과 모범 사례
__6.3.5 여섯 다리와 MySQL
6.4 이메일

Part II 고급 스크레이핑

CHAPTER 7 문서 읽기
7.1 문서 인코딩
7.2 텍스트
__7.2.1 텍스트 인코딩과 인터넷
7.3 CSV
__7.3.1 CSV 파일 읽기
7.4 PDF
7.5 마이크로소프트 워드와 .docx

CHAPTER 8 지저분한 데이터 정리하기
8.1 코드에서 정리
8.2 사후 정리
__8.2.1 오픈리파인

CHAPTER 9 자연어 읽고 쓰기
9.1 데이터 요약
9.2 마르코프 모델
__9.2.1 위키백과의 여섯 다리: 결론
9.3 자연어 툴킷
__9.3.1 설치
__9.3.2 NLTK를 사용한 통계적 분석
__9.3.3 NLTK를 사용한 사전적 분석
9.4 추가 자료

CHAPTER 10 폼과 로그인 뚫기
10.1 파이썬 requests 라이브러리
10.2 기본적인 폼 전송
10.3 라디오 버튼, 체크박스, 기타 필드
10.4 파일과 이미지 전송
10.5 로그인과 쿠키 처리
__10.5.1 HTTP 기본 접근 인증
10.6 기타 폼 문제

CHAPTER 11 자바스크립트 스크레이핑
__11.1.1 널리 쓰이는 자바스크립트 라이브러리
11.2 Ajax와 DHTML
__11.2.1 셀레니움으로 파이썬에서 자바스크립트 실행
__11.2.2 그 밖의 셀레니움 웹드라이버
11.3 리다이렉트 처리
11.4 자바스크립트에 대한 마지막 노트

CHAPTER 12 API를 통한 크롤링
12.1 API에 대한 간단한 소개
__12.1.1 HTTP 메서드와 API
__12.1.2 API 응답에 대해
12.2 JSON 파싱
12.3 문서화되지 않은 API
__12.3.1 문서화되지 않은 API 찾기
__12.3.2 문서화되지 않은 API 문서화하기
__12.3.3 API 자동으로 찾고 문서화하기
12.4 API와 다른 데이터 소스의 결합
12.5 마치며

CHAPTER 13 이미지 처리와 텍스트 인식
13.1 라이브러리 개관
__13.1.1 필로
__13.1.2 테서랙트
__13.1.3 파이테서랙트
__13.1.4 넘파이
13.2 형식이 일정한 텍스트 처리
__13.2.1 이미지 자동 조정
__13.2.2 웹사이트 이미지에서 텍스트 스크레이핑하기
13.3 CAPTCHA 읽기와 테서랙트 훈련
__13.3.1 테서랙트 훈련
13.4 CAPTCHA 가져오기와 답 보내기

CHAPTER 14 스크레이핑 함정 피하기
14.1 스크레이핑의 윤리에 관해
14.2 사람처럼 보이기
__14.2.1 헤더를 수정하십시오
__14.2.2 쿠키 처리
__14.2.3 타이밍이 가장 중요합니다
14.3 널리 쓰이는 폼 보안 기능
__14.3.1 숨긴 필드 값
__14.3.2 허니팟 피하기
14.4 사람처럼 보이기 위한 체크리스트

CHAPTER 15 스크레이퍼로 웹사이트 테스트하기
15.1 테스트 입문
__15.1.1 단위 테스트란?
15.2 파이썬 unittest
__15.2.1 위키백과 테스트
15.3 셀레니움을 사용한 테스트
__15.3.1 사이트 조작
15.4 unittest vs 셀레니움

CHAPTER 16 병렬 웹 크롤링
16.1 프로세스 vs. 스레드
16.2 멀티스레드 크롤링
__16.2.1 경쟁 상태와 큐
__16.2.2 threading 모듈
16.3 멀티프로세스 크롤링
__16.3.1 멀티프로세스 크롤링
__16.3.2 프로세스 간 통신
16.4 멀티프로세스 크롤링의 다른 접근법

CHAPTER 17 원격 스크레이핑
17.1 원격 서버를 쓰는 이유
__17.1.1 IP 주소 차단 방지
__17.1.2 이동성과 확장성
17.2 토어
__17.2.1 파이삭스
17.3 원격 호스팅
__17.3.1 웹사이트 호스팅 계정에서 실행
__17.3.2 클라우드에서 실행
17.4 추가 자료

CHAPTER 18 웹 스크레이핑의 합법성과 윤리
18.1 상표? 저작권? 특허?
__18.1.1 저작권법
18.2 동산 침해
18.3 컴퓨터 사기와 악용에 관한 법률
18.4 robots.txt와 이용 약관
18.5 세 가지 웹 스크레이퍼 사례
__18.5.1 이베이 vs. 비더스 에지: 동산 침해
__18.5.2 미국 vs. 오언하이머: 컴퓨터 사기와 악용에 관한 법률
__18.5.3 필드 vs. 구글: 저작권과 robots.txt
18.6 미래를 향해


리뷰

구매자 별점

5.0

점수비율
  • 5
  • 4
  • 3
  • 2
  • 1

3명이 평가함

리뷰 작성 영역

이 책을 평가해주세요!

내가 남긴 별점 0.0

별로예요

그저 그래요

보통이에요

좋아요

최고예요

별점 취소

구매자 표시 기준은 무엇인가요?

'구매자' 표시는 리디에서 유료도서 결제 후 다운로드 하시거나 리디셀렉트 도서를 다운로드하신 경우에만 표시됩니다.

무료 도서 (프로모션 등으로 무료로 전환된 도서 포함)
'구매자'로 표시되지 않습니다.
시리즈 도서 내 무료 도서
'구매자’로 표시되지 않습니다. 하지만 같은 시리즈의 유료 도서를 결제한 뒤 리뷰를 수정하거나 재등록하면 '구매자'로 표시됩니다.
영구 삭제
도서를 영구 삭제해도 ‘구매자’ 표시는 남아있습니다.
결제 취소
‘구매자’ 표시가 자동으로 사라집니다.

이 책과 함께 구매한 책


이 책과 함께 둘러본 책



본문 끝 최상단으로 돌아가기

spinner
모바일 버전