메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

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

자동화된 나만의 웹 크롤러로 원하는 데이터 끌어오기

한빛미디어

번역서

판매중

5점 (6명)
좋아요 : 5

다양한 웹에서 효율적으로 데이터를 수집하는 방법 A to Z
 

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

 

라이언 미첼 저자

라이언 미첼

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

 

최경현 역자

최경현

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

 

[PART 1 웹 스크레이퍼 제작]

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

[PART 2 고급 스크레이핑]

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

CHAPTER 20 웹 스크레이핑 프록시
_20.1 원격 서버를 쓰는 이유
__20.1.1 IP 주소 차단 방지
__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 마치며

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

 

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

 

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

 

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

 

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


대상 독자

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

 

주요 내용

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

처음 이 책을 펼쳤을 때는 그냥 파이썬으로 데이터를 긁어오는 방법만 간단히 알려주는 줄 알았다. 그런데 막상 읽어보니 꽤 체계적으로 구성되어 있어서 놀랐다. 책은 크게 두 파트로 나뉘는데, 앞부분은 웹이 어떻게 작동하는지, HTML이 뭔지, 웹에서 데이터를 가져올 때 어떤 식으로 접근해야 하는지를 친절하게 설명해준다. 특히, 스크레이핑이 불법인가요? 같은 질문에 대한 윤리적인 이야기까지 담겨 있어서 흥미로웠다.

중간부터는 본격적으로 코드를 짜면서 웹 페이지에서 필요한 데이터를 추출하는 실습이 이어진다. 예를 들어, BeautifulSoup을 써서 뉴스 기사 제목을 가져오거나, 셀레니움을 활용해서 자바스크립트로 만들어진 페이지에서 데이터를 긁어오는 식이다. 뒤로 갈수록 API를 통한 데이터 수집, 이미지에서 글자 인식하기(OCR), 크롤링 방지 우회 같은 고급 주제까지 다뤄서 꽤 실전적이다.

 

나는 웹 크롤링을 처음 공부해보는 입장이었는데, 이 책은 기초부터 차근차근 쌓아가게 도와줘서 입문자에게 좋다고 느꼈다. 특히 ‘코드를 그냥 따라 치는 게 아니라, 왜 이렇게 쓰는지’를 설명해줘서 이해하는 데 도움이 됐다.

물론 파이썬 기초는 어느 정도 알고 있어야 따라가기 수월하고, 셀레니움이나 API 부분은 처음 보면 조금 헷갈릴 수도 있다. 하지만 예제가 워낙 잘 돼 있어서 몇 번 돌려보면 감이 온다.

개인적으로는 그냥 웹 페이지를 보기만 했던 내가, 그 안에서 데이터를 직접 가져오고 자동화까지 할 수 있게 된 게 신기했다. 실제 졸업작품이나 데이터 수집할 때도 쓸 수 있을 것 같아서 꽤 유용했다.

 

"한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 협찬 받아 작성된 서평입니다."

 

코딩을 처음 배울 때 보통 html 혹은 파이썬으로 나뉘고는 한다. 필자는 프론트엔드 쪽으로 갈만큼 html과 css를 더 좋아했어서 그런지, 파이썬을 배우다 보면 ’이걸 어디에 써먹을 수 있을까?’란 생각이 들고는 했다. 하지만 괜히 인기있는 언어가 아니듯, 파이썬으로 할 수 있는 건 굉장히 많다. 그 중에서도 가장 대표적인 것 중 하나이 바로 '웹 크롤링'이다. 웹에서 원하는 정보를 자동으로 수집하고 뉴스 기사, 쇼핑몰 정보, 게시판 글 등 흩어져 있는 데이터를 한데 모아보는 건, 꽤나 흥미롭고 강력하다.

하지만 웹 크롤링이 처음인 사람들이라면 어디서부터 어떻게 시작해야할 지 막막할 거다. <파이썬으로 웹 크롤러 만들기>는 어느정도 파이썬을 알고 있으나 웹 크롤링을 전혀 모르고 있던 입문자를 위해 차근차근 길을 안내해준다.

 

"

웹 스크레이퍼가 이와 비슷한 상황을 피하려면 어떤 교훈을 얻을 수 있을까요?

아마도 가장 좋은 출발점은 남에게 피해 주는 행동은 하지 말자는 것이겠죠.

<파이썬으로 웹 크롤러 만들기> p.62​

"

 

책은 웹 스크레이핑으로 들어가기 전에 인터넷 작동 원리부터 시작한다. 네트워킹이 어떤 계층이 있는지, HTML과 CSS, 자바스크립트는 뭔지, 개발자 도구는 어떻게 사용하는 건지 등 기본적인 내용들을 알려준다. 여기에 추가로 해당 작업은 데이터를 무작위로 수집하는 것이기에 우리가 침해해야 하지 말아야할 것들 또한 말해준다. 웹 스크레이핑 윤리와 관련된 법적 공방 사례를 말하며 반드시 이 부분을 주의하라고 거듭 말하기도 한다.

어느정도 필요한 조언을 주고 나서는 본격적으로 웹 스크레이핑을 위한 내용으로 넘어간다. 주피터 노트북을 설치하는 것부터 스크레이핑에 필요한 라이브러리, 그 라이브러리를 어떻게 코드에 적용하고 실행하면 되는 지 등등 상세하게 스텝을 나누어 진행된다. 심지어 코드 작성에 필요한 정규 표현식 등도 잘 정리 되어 있다.(감동)

여기에 더 나아가 웹 크롤링을 위한 스크립트는 어떤 패턴을 가지고 있는지, 그 패턴에서 어떻게 점점 확장해나갈 수 있는지를 말한다. 초반에는 간단한 예제로 크롤링의 기본 원리를 익히고, 이후에는 점점 더 실전적인 내용으로 나아가는 것이다. 책은 당연히 여기에서 끝나지 않는다. 파이썬 웹 크롤링 프레임 워크 중 '스크레이피(scrapy)'를 활용하여 스크레이퍼 작성하는 방법을 가르쳐준다.


이외에도 ‘고급 스크레이핑’이라는 이름으로 판다스를 활용해 데이터를 정리하는 방법, API를 이용한 크롤링 등 더 다양한 내용이 담겨 있다. 웹 개발 경험이 있는 사람들에게도 충분히 흥미로운 내용들이 많기 때문에 크롤링에 관심 있는 개발자라면 한 번쯤 읽어볼 만하다.

하지만 무엇보다 이 책을 특히 추천하고 싶은 독자는 파이썬을 어느정도 배웠으나 어떻게 활용해야할 지 감이 오지 않는 독자, 자신만의 웹 크롤러를 차근차근 만들어 가고 싶은 크롤링 입문자에게 이 책을 추천한다. 책을 읽다보면 단 몇 줄의 URL과 내가 쓴 코드만으로 데이터를 쌓는 짜릿한 경험을 통해, 내이를 어떻게 만들고 어떻게 활용할 수 있을지 자연스럽게 감을 잡게 될 것이다.


 

 

 

이 책은 데이터 수집에 대해 전반적으로 공부할 수 있는 책입니다! 특히 

웹 데이터 수집에 대해 처음인 입문자부터 어느정도 지식이 있는 숙련자까지 모두 커버 가능합니다

하지만 파이썬(python) 언어를 전혀 모른다면 예제 코드를 이해하는 데 어려울 수 있으므로 파이썬(python) 언어에 대해 어느정도 지식이 있는 사람들에게 추천합니다

특히 실제 프로젝트를 진행하며 웹 상에서 데이터 수집이 필요한 경우 혹은 수집하는 과정에서 난관을 만난 경우 강추합니다! 

 

이 책의 일구 구절인데욥

 

"인터넷의 어디에서든, 어떤 형식이든, 어떤 타입의 데이터라도 가져올 수 있는 도구를 갖게 될 겁니다."

 

이 책을 통해 웹 상에서 원하는 정보를 가져오는 마법과 같은 능력을 경험하면 좋겠습니다! 

"한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 협찬 받아 작성된 서평입니다."

 

웹 크롤링 모델부터 스크레이핑 함정, 병렬 웹스크레이핑 등 크롤링에 대한 내용을

전체적으로 담고 있는 책입니다. 특히 파트 1에서는 라이브러리 위주의 설명을, 파트 2에서는 웹 스크레이핑 관련 추가 주제를 담고 있어 많은 정보를 쉽게 찾고 공부할 수 있습니다.

파이썬을 이미 배웠는데 크롤링에 입문하고 싶으신 분, 또는 크롤링을 배웠는데 다시 정리하며 확인해보고 싶으신 분들께 추천드립니다.

파이썬을 배우고 파이썬을 실용적인 부분에서 활용하고 싶을 때 강력하게 추천합니다 단순히 웹 크롤러에 대한 내용만 있는 것이 아니라 웹 크롤러에 대한 윤리적인 부분도 다루고 있습니다

파이썬 웹 크롤러하면 이 책 입니다

벌써 3판째 개정된데에는 다 이유가 있어요 매우 유용한 도서 입니다

웹 크롤러, 웹 스크레이핑을 공부하고 싶다면 고민할 필요 없이 이 책을 꼭 보셔야됩니다

최고 입니다

결제하기
• 문화비 소득공제 가능
• 배송료 : 2,000원배송료란?

배송료 안내

  • 20,000원 이상 구매시 도서 배송 무료
  • 브론즈, 실버, 골드회원 무료배송
닫기

리뷰쓰기

닫기
* 상품명 :
파이썬으로 웹 크롤러 만들기(3판)
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
파이썬으로 웹 크롤러 만들기(3판)
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
파이썬으로 웹 크롤러 만들기(3판)
구입처*
구입일*
부가기호*
부가기호 안내

* 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

* 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?