알라딘

파이썬으로 웹 크롤러 만들기 - 초간단 나만의 웹 크롤러로 원하는 데이터를 가져오는 방법

라이언 미첼 지음, 한선용 옮김 | 한빛미디어
  • 등록일2018-09-14
  • 파일포맷epub
  • 파일크기30 M  
  • 지원기기아이폰, 아이패드, 안드로이드, 태블릿, PC
  • 보유현황보유 1, 대출 0, 예약 0
  • 평점 평점점 평가없음

책소개

웹 어디서든 내가 원하는 데이터를 쏙쏙쏙
웹에 존재한다면 그것이 어떤 형태이든 데이터로 추출할 수 있다. 필요한 무기는 이 책과 파이썬뿐. BeautifulSoup, 셀레니움, 테서랙트 등 강력한 파이썬 라이브러리 사용법과 함께 API, 인증, 이미지 및 텍스트 인식, 로그인 처리 등 웹 크롤링의 기초부터 고급 기법까지 종합적으로 다루는 유일한 책. 실제 업무와 생활에 적용할 수 있는 예제를 통해 일상의 데이터 분석가가 될 수 있다.

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

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

저자소개

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

목차

CHAPTER 1 첫 번째 웹 스크레이퍼
1.1.연결
1.2.BeautifulSoup 소개

CHAPTER 2 고급 HTML 분석
2.1.닭 잡는 데 소 잡는 칼을 쓸 필요는 없습니다
2.2.다시 BeautifulSoup
2.3.정규 표현식
2.4.정규 표현식과 BeautifulSoup
2.5.속성에 접근하기
2.6.람다 표현식
2.7.BeautifulSoup를 넘어

CHAPTER 3 크롤링 시작하기
3.1.단일 도메인 내의 이동
3.2.전체 사이트 크롤링
3.3.인터넷 크롤링
3.4.스크래파이를 사용한 크롤링

CHAPTER 4 API 사용
4.1.API는 어떻게 동작하는가
4.2.공통 표기법
4.3.응답
4.4.에코 네스트
4.5.트위터
4.6.구글 API
4.7.JSON 파싱
4.8.모든 것을 하나로
4.9.마치며

CHAPTER 5 데이터 저장
5.1.미디어 파일
5.2.데이터를 CSV로 저장
5.3.MySQL
5.4.이메일

CHAPTER 6 문서 읽기
6.1.문서 인코딩
6.2.텍스트
6.3.CSV
6.4.PDF
6.5.마이크로소프트 워드와 .docx

CHAPTER 7 지저분한 데이터 정리하기
7.1.코드로 정리하기
7.2.사후 정리

CHAPTER 8 자연어 읽고 쓰기
8.1.데이터 요약
8.2.마르코프 모델
8.3.자연어 툴킷
8.4.추가 자료

CHAPTER 9 폼과 로그인 뚫기
9.1.파이썬 requests 라이브러리
9.2.기본적인 폼 전송
9.3.라디오 버튼, 체크박스, 기타 필드
9.4.파일과 이미지 전송
9.5.로그인과 쿠키 처리
9.6.기타 폼 문제

CHAPTER 10 자바스크립트 스크레이핑
10.1.자바스크립트에 관한 간단한 소개
10.2.Ajax와 동적 HTML
10.3.리다이렉트 처리

CHAPTER 11 이미지 처리와 텍스트 인식
11.1.라이브러리 개관
11.2.형식이 일정한 텍스트 처리
11.3.CAPTCHA 읽기와 테서랙트 훈련
11.4.CAPTCHA 가져오기와 답 보내기

CHAPTER 12 스크레이핑 함정 피하기
12.1.스크레이핑의 윤리에 관해
12.2.사람처럼 보이기
12.3.널리 쓰이는 폼 보안 기능
12.4.사람처럼 보이기 위한 체크리스트

CHAPTER 13 스크레이퍼로 웹사이트 테스트하기
13.1.테스트 입문
13.2.파이썬 unittest
13.3.셀레니움을 사용한 테스트
13.4.unittest vs 셀레니움

CHAPTER 14 원격 스크레이핑
14.1.원격 서버를 쓰는 이유
14.2.토르
14.3.원격 호스팅
14.4.추가 자료
14.5.미래를 향해

APPENDIX A 파이썬 훑어보기
A.1.설치와 \'Hello, World!\'

APPENDIX B 인터넷 훑어보기

APPENDIX C 웹 스크레이핑의 합법성과 윤리

C.1.상표? 저작권? 특허?
C.2.동산 침해
C.3.컴퓨터 사기와 악용에 관한 법률
C.4.robots.txt와 이용 약관
C.5.세 가지 웹 스크레이퍼 사례

한줄 서평