파이썬으로 웹 크롤러 만들기
Description
다양한 웹에서 효율적으로 데이터를 수집하는 방법 A to Z
오늘날 데이터가 넘쳐나는 웹에서 웹 크롤러로 할 수 있는 일은 무궁무진합니다. 이 마법을 위한 준비물은 약간의 파이썬 프로그래밍 능력 하나뿐, 나머지는 이 책에 모두 담겨 있습니다. 이 책을 활용하면 웹 크롤링을 이용해 업무를 자동화하고, 복잡한 웹 콘텐츠를 처리하는 통찰력을 얻게 될 것입니다. 새롭게 3판으로 개정된 이 책은 전반적인 코드를 최신화하고 실무에서 활용할 수 있는 예제를 추가했습니다. 또한 브라우저 자동화를 위한 셀레니움, 정확한 데이터 추출을 위한 XPath도 함께 다룹니다. 복잡한 웹 세상에서 효율적으로 데이터를 수집하고 싶은, ‘일상의 데이터 분석가’를 꿈꾸는 모두에게 이 책은 가장 정확한 나침반이 되어 줄 것입니다.

저자

라이언미첼

저자:라이언미첼
웹크롤링,보안,데이터과학에관심이많은개발자.현재글로벌펀드사헤지서브(HedgeServ)에서시니어개발자로근무하고있습니다.프랭클린W.올린공과대학교를졸업했고하버드대학교에서소프트웨어엔지니어링석사과정을밟았습니다.어바인(Abine)에서웹크롤러와봇을만들었고,링크드라이브(LinkeDrive)에서는API및데이터분석도구를만들었습니다.금융업및유통업분야에서웹크롤링프로젝트컨설팅을하고있고,교육과강연활동도활발하게펼치고있습니다.본서외저서로『InstantWebScrapingwithJava』(Packt,2013)가있습니다.한선용(옮긴이)웹표준과자바스크립트에관심이많은번역가.2008년부터웹관련일을했으며,'WCAG2.0을위한일반적테크닉'등의문서를번역해웹에올렸습니다.번역서로『한권으로끝내는Node&Express』(2015),『자바스크립트를말하다』(2014),『데이터시각화를위한데이터인사이트』(2014),『모던웹을요리하는초간편HTML5Cookbook』(2012),『HeadFirstjQuery』(2012),『jQueryMobile』(2012),『자바스크립트성능최적화』(2011,이상한빛미디어),『자바스크립트프로그래밍』(2013),『처음배우는jQuery』(2012),『에릭마이어의CSS노하우』(2011,이상인사이트)등이있습니다.

역자:최경현
SK텔레콤에서통신및플랫폼인프라등다양한시스템을운영했으며현재는개발업무를담당하고있습니다.옮긴책으로는『풀스택테스트』(한빛미디어,2023),『처음시작하는마이크로서비스』(한빛미디어,2021),『쿠버네티스를활용한클라우드네이티브데브옵스』(한빛미디어,2019)가있습니다.

목차

[PART1웹스크레이퍼제작]

CHAPTER1인터넷작동원리
_1.1네트워킹
__1.1.1물리계층
__1.1.2데이터링크계층
__1.1.3네트워크계층
__1.1.4전송계층
__1.1.5세션계층
__1.1.6표현계층
__1.1.7응용계층
_1.2HTML
_1.3CSS
_1.4자바스크립트
_1.5개발자도구로웹사이트검사하기

CHAPTER2웹스크레이핑의합법성과윤리
_2.1상표?저작권?특허?
__2.1.1저작권법
_2.2동산침해
_2.3컴퓨터사기와악용에관한법률
_2.4robots.txt와이용약관
_2.5세가지웹스크레이퍼사례
__2.5.1이베이vs.비더스에지:동산침해
__2.5.2미국vs.오언하이머:컴퓨터사기와악용에관한법률
__2.5.3필드vs.구글:저작권과robots.txt

CHAPTER3웹스크레이핑활용분야
_3.1프로젝트분류하기
_3.2이커머스
__3.2.1마케팅
_3.3학술연구
_3.4제품개발
_3.5여행
_3.6영업
_3.7SERP스크레이핑

CHAPTER4첫번째웹스크레이퍼
_4.1주피터노트북설치및실행
_4.2연결
_4.3BeautifulSoup소개
__4.3.1BeautifulSoup설치
__4.3.2BeautifulSoup실행
__4.3.3신뢰할수있는연결과예외처리

CHAPTER5고급HTML분석
_5.1다시BeautifulSoup
__5.1.1find()와find_all()
__5.1.2기타BeautifulSoup객체
__5.1.3트리이동
_5.2정규표현식
_5.3정규표현식과BeautifulSoup
_5.4속성에접근하기
_5.5람다표현식
_5.6닭잡는데소잡는칼을쓸필요는없습니다

CHAPTER6크롤링시작하기
_6.1단일도메인내의이동
_6.2전체사이트크롤링
__6.2.1전체사이트에서데이터수집
_6.3인터넷크롤링

CHAPTER7웹크롤링모델
_7.1객체계획및정의
_7.2다양한웹사이트레이아웃다루기
_7.3크롤러구성
__7.3.1검색을통한사이트크롤링
__7.3.2링크를통한사이트크롤링
__7.3.3여러페이지유형크롤링
_7.4웹크롤러모델에대한생각

CHAPTER8스크레이피
_8.1스크레이피설치
__8.1.1새스파이더초기화
_8.2간단한스크레이퍼작성하기
_8.3규칙에의한스파이더링
_8.4항목만들기
_8.5항목출력하기
_8.6파이프라인
_8.7스크레이피로깅
_8.8마치며

CHAPTER9데이터저장
_9.1미디어파일
_9.2데이터를CSV로저장
_9.3MySQL
__9.3.1MySQL설치
__9.3.2기본명령어
__9.3.3파이썬과통합
__9.3.4데이터베이스테크닉과모범사례
__9.3.5여섯다리와MySQL
_9.4이메일

[PART2고급스크레이핑]

CHAPTER10문서읽기
_10.1문서인코딩
_10.2텍스트
__10.2.1텍스트인코딩과인터넷
_10.3CSV
__10.3.1CSV파일읽기
_10.4PDF
_10.5마이크로소프트워드와.docx

CHAPTER11지저분한데이터다루기
_11.1텍스트정리하기
_11.2정규화된텍스트다루기
_11.3판다스로데이터정리하기
__11.3.1정리
__11.3.2인덱싱,정렬,필터링
__11.3.3판다스에대해더알아보기

CHAPTER12자연어읽고쓰기
_12.1데이터요약
_12.2마르코프모델
__12.2.1케빈베이컨의여섯다리:결론
_12.3자연어툴킷
__12.3.1설치
__12.3.2NLTK를사용한통계적분석
__12.3.3NLTK를사용한사전적분석
_12.4마치며

CHAPTER13폼과로그인뚫기
_13.1파이썬requests라이브러리
_13.2기본적인폼전송
_13.3라디오버튼,체크박스,기타필드
_13.4파일과이미지전송
_13.5로그인과쿠키처리
__13.5.1HTTP기본접근인증
_13.6기타폼문제

CHAPTER14자바스크립트스크레이핑
_14.1자바스크립트에관한간단한소개
__14.1.1널리쓰이는자바스크립트라이브러리
_14.2Ajax와DHTML
_14.3셀레니움으로파이썬에서자바스크립트실행
__14.3.1셀레니움설치및실행
__14.3.2셀레니움선택자
__14.3.3페이지로딩대기
__14.3.4XPath
_14.4그밖의셀레니움웹드라이버
_14.5리다이렉트처리
_14.6자바스크립트에대한마지막노트

CHAPTER15API를통한크롤링
_15.1API에대한간단한소개
__15.1.1HTTP메서드와API
__15.1.2API응답에대해
_15.2JSON파싱
_15.3문서화되지않은API
__15.3.1문서화되지않은API찾기
__15.3.2문서화되지않은API문서화하기
_15.4API와다른데이터소스의결합
_15.5마치며

CHAPTER16이미지처리와텍스트인식
_16.1라이브러리개관
__16.1.1필로
__16.1.2테서랙트
__16.1.3넘파이
_16.2형식이일정한텍스트처리
__16.2.1이미지자동조정
__16.2.2웹사이트이미지에서텍스트스크레이핑하기
_16.3CAPTCHA읽기와테서랙트훈련
__16.3.1테서랙트훈련
_16.4CAPTCHA가져오기와답보내기

CHAPTER17스크레이핑함정피하기
_17.1스크레이핑의윤리에관해
_17.2사람처럼보이기
__17.2.1헤더를수정하십시오
__17.2.2쿠키처리
__17.2.3TLS핑거프린팅
__17.2.4타이밍이가장중요합니다
_17.3널리쓰이는폼보안기능
__17.3.1숨긴필드값
__17.3.2허니팟피하기
_17.4사람처럼보이기위한체크리스트

CHAPTER18스크레이퍼로웹사이트테스트하기
_18.1테스트입문
__18.1.1단위테스트란?
_18.2파이썬unittest
__18.2.1위키백과테스트
_18.3셀레니움을사용한테스트
__18.3.1사이트조작

CHAPTER19병렬웹스크레이핑
_19.1프로세스vs.스레드
_19.2멀티스레드크롤링
__19.2.1경쟁상태와큐
__19.2.2threading모듈
_19.3멀티프로세스
__19.3.1멀티프로세스크롤링
__19.3.2프로세스간통신
_19.4멀티프로세스크롤링의다른접근법

CHAPTER20웹스크레이핑프록시
_20.1원격서버를쓰는이유
__20.1.1IP주소차단방지
__20.1.2이동성과확장성
_20.2토르
__20.2.1파이삭스
_20.3원격호스팅
__20.3.1웹사이트호스팅계정에서실행
__20.3.2클라우드에서실행
__20.3.3미래를향해
_20.4웹스크레이핑프록시
__20.4.1스크레이핑비
__20.4.2스크레이퍼API
__20.4.3옥시랩스
__20.4.4자이트
_20.5마치며

출판사 서평

다양한웹에서효율적으로데이터를수집하는방법AtoZ
오늘날데이터가넘쳐나는웹에서웹크롤러로할수있는일은무궁무진합니다.이마법을위한준비물은약간의파이썬프로그래밍능력하나뿐,나머지는이책에모두담겨있습니다.이책을활용하면웹크롤링을이용해업무를자동화하고,복잡한웹콘텐츠를처리하는통찰력을얻게될것입니다.새롭게3판으로개정된이책은전반적인코드를최신화하고실무에서활용할수있는예제를추가했습니다.또한브라우저자동화를위한셀레니움,정확한데이터추출을위한XPath도함께다룹니다.복잡한웹세상에서효율적으로데이터를수집하고싶은,'일상의데이터분석가'를꿈꾸는모두에게이책은가장정확한나침반이되어줄것입니다.

HTML기본개념부터AI기반데이터추출까지,
높아진웹의장벽을뛰어넘을수있는최신웹크롤링가이드

점점더다양하고복잡해지는방대한정보의바다에서원하는데이터를얻으려면어떻게해야할까요?
흩어진데이터를의미있는정보로만들수있는효과적인도구가있을까요?『파이썬으로웹크롤러만들기(3판)』는이러한질문들에완벽한답을제공합니다.

1부에서는웹크롤링에대한기본적인개념과함께파이썬과BeautifulSoup및스크레이피와같은인기라이브러리를사용하는비교적간단한웹크롤러를소개합니다.그후MySQL의데이터저장,API처리,CSV,PDF,워드와같은형식의문서분석과같은핵심기술을이해하며웹을탐색하는기본기를배우게됩니다.

2부에서는1부에서배운기본기를토대로보다복잡한웹환경을분석하고처리하기위한고급기술을다룹니다.셀레니움을활용하여동적자바스크립트기반페이지를스크랩하고,판다스와같은도구를사용하여지저분한데이터를정리하는방법을알아봅니다.또한,텍스트데이터에서의미를추출할수있는NLTK를활용한자연어처리를설명하며,이미지에서텍스트를추출하여CAPTCHA를우회할수있는테서랙트와필로같은도구들도함께소개합니다.

변화하는최신웹환경에적절히대응할수있도록개정된3판에서는2판보다이해하기편한구성으로내용을재배치하였고,전반적으로코드를업데이트했습니다.웹크롤링을처음시작하는초급자는물론,기존에웹크롤링을업무에활용하고있던중급자이상의분들에게도만족감을드릴수있는도서라자부합니다.

대상독자
●웹크롤링을시작하고싶은모든개발자
●이미업무에웹크롤링을활용하고있는개발자
●파이썬을이용하여웹데이터를모으고싶은개발자

주요내용
●복잡한HTML파싱
●자연어읽고쓰기
●폼및로그인크롤링
●스크레이피프레임워크로크롤러만들기
●수집한데이터를저장하는다양한방법
●자바스크립트수집및API이용
●문서에서데이터를읽고추출하기
●봇차단을피하는법
●지저분한데이터형식정돈하기
●크롤러를이용한웹사이트테스팅