책소개
웹 어디서든 내가 원하는 데이터를 쏙쏙쏙
웹에 존재한다면 그것이 어떤 형태이든 데이터로 추출할 수 있다. 필요한 무기는 이 책과 파이썬뿐. BeautifulSoup, 셀레니움, 테서랙트 등 강력한 파이썬 라이브러리 사용법과 함께 API, 인증, 이미지 및 텍스트 인식, 로그인 처리 등 웹 크롤링의 기초부터 고급 기법까지 종합적으로 다루는 유일한 책. 실제 업무와 생활에 적용할 수 있는 예제가 가득하다. 2판은 예제를 추가 및 업데이트했고 모던 웹에서 거의 모든 종류의 데이터를 가져오는 방법을 포괄적으로 다룬다.
저자소개
저 : 라이언 미첼 (Ryan Mitchell)
웹 크롤링, 보안, 데이터 과학에 관심이 많은 개발자. 현재 글로벌 펀드사 헤지서브(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 람다 표현식
2.7 BeautifulSoup를 넘어
CHAPTER 3. 크롤링 시작하기
3.1 단일 도메인 내의 이동
3.2 전체 사이트 크롤링
3.2.1 전체 사이트에서 데이터 수집
3.3 인터넷 크롤링
3.4 스크래파이를 사용한 크롤링
CHAPTER 4. API 사용
4.1 API는 어떻게 동작하는가
4.2 공통 표기법
4.2.1 메서드
4.2.2 인증
4.3 응답
4.3.1 API 호출
4.4 에코 네스트
4.4.1 몇 가지 예제
4.5 트위터
4.5.1 시작하기
4.5.2 몇 가지 예제
4.6 구글 API
4.6.1 시작하기
4.6.2 몇 가지 예제
4.7 JSON 파싱
4.8 모든 것을 하나로
4.9 마치며
CHAPTER 5. 데이터 저장
5.1 미디어 파일
5.2 데이터를 CSV로 저장
5.3 MySQL
5.3.1 MySQL 설치
5.3.2 기본 명령어
5.3.3 파이썬과의 통합
5.3.4 데이터베이스 테크닉과 모범 사례
5.3.5 여섯 다리와 MySQL
5.4 이메일
CHAPTER 6. 문서 읽기
6.1 문서 인코딩
6.2 텍스트
6.2.1 텍스트 인코딩과 인터넷
6.3 CSV
6.3.1 CSV 파일 읽기
6.4 PDF
6.5 마이크로소프트 워드와 .docx
Part II
CHAPTER 7. 지저분한 데이터 정리하기
7.1 코드로 정리하기
7.1.1 데이터 정규화
7.2 사후 정리
7.2.1 오픈리파인
CHAPTER 8. 자연어 읽고 쓰기
8.1 데이터 요약
8.2 마르코프 모델
8.2.1 위키백과의 여섯 다리: 결론
8.3 자연어 툴킷
8.3.1 설치
8.3.2 NLTK를 사용한 통계적 분석
8.3.3 NLTK를 사용한 사전적 분석
8.4 추가 자료
CHAPTER 9. 폼과 로그인 뚫기
9.1 파이썬 requests 라이브러리
9.2 기본적인 폼 전송
9.3 라디오 버튼, 체크박스, 기타 필드
9.4 파일과 이미지 전송
9.5 로그인과 쿠키 처리
9.5.1 HTTP 기본 접근 인증
9.6 기타 폼 문제
CHAPTER 10. 자바스크립트 스크레이핑
10.1 자바스크립트에 관한 간단한 소개
10.1.1 널리 쓰이는 자바스크립트 라이브러리
10.2 Ajax와 동적 HTML
10.2.1 셀레니움으로 파이썬에서 자바스크립트 실행
10.3 리다이렉트 처리
CHAPTER 11. 이미지 처리와 텍스트 인식
11.1 라이브러리 개관
11.1.1 필로
11.1.2 테서랙트
11.1.3 넘파이
11.2 형식이 일정한 텍스트 처리
11.2.1 웹사이트 이미지에서 텍스트 스크레이핑하기
11.3 CAPTCHA 읽기와 테서랙트 훈련
11.3.1 테서랙트 훈련
11.4 CAPTCHA 가져오기와 답 보내기
CHAPTER 12. 스크레이핑 함정 피하기
12.1 스크레이핑의 윤리에 관해
12.2 사람처럼 보이기
12.2.1 헤더를 수정하십시오
12.2.2 쿠키 처리
12.2.3 타이밍이 가장 중요합니다
12.3 널리 쓰이는 폼 보안 기능
12.3.1 숨긴 필드 값
12.3.2 허니팟 피하기
12.4 사람처럼 보이기 위한 체크리스트
CHAPTER 13. 스크레이퍼로 웹사이트 테스트하기
13.1 테스트 입문
13.1.1 단위 테스트란?
13.2 파이썬 unittest
13.2.1 위키백과 테스트
13.3 셀레니움을 사용한 테스트
13.3.1 사이트 조작
13.4 unittest vs 셀레니움
CHAPTER 14. 원격 스크레이핑
14.1 원격 서버를 쓰는 이유
14.1.1 IP 주소 차단 방지
14.1.2 이동성과 확장성
14.2 토르
14.2.1 파이삭스
14.3 원격 호스팅
14.3.1 웹사이트 호스팅 계정에서 실행
14.3.2 클라우드에서 실행
14.4 추가 자료
14.5 미래를 향해
APPENDIX A. 파이썬 훑어보기
A.1 설치와 ‘Hello, World!’
APPENDIX B. 인터넷 훑어보기
APPENDIX C. 웹 스크레이핑의 합법성과 윤리
C.1 상표? 저작권? 특허?
C.1.1 저작권법
C.2 동산 침해
C.3 컴퓨터 사기와 악용에 관한 법률
C.4 robots.txt와 이용 약관
C.5 세 가지 웹 스크레이퍼 사례
C.5.1 이베이 vs. 비더스 에지: 동산 침해
C.5.2 미국 vs. 오언하이머: 컴퓨터 사기와 악용에 관한 법률
C.5.3 필드 vs. 구글: 저작권과 robots.txt