References

라이언 미첼. 2025. 파이썬으로 웹 크롤러 만들기. Translated by 최경현. https://www.yes24.com/Product/Goods/141892731.

History

  • [2025-02-15 Sat 16:47]

파이썬으로 웹 크롤러 만들기

(라이언 미첼 2025)

  • 라이언 미첼 최경현
  • 다양한 웹에서 효율적으로 데이터를 수집하는 방법 A to Z오늘날 데이터가 넘쳐나는 웹에서 웹 크롤러로 할 수 있는 일은 무궁무진하다. 이 마법을 위한 준비물은 약간의 파이썬 프로그래밍 능력 하나뿐, 나머지는 이 책에 모두 담겨 있다.
  • Web Scraping with Python 3rd
  • 웹 스크레이핑(Web Scraping)과 웹 크롤링(Web Crawling)의 개념

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

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

목차

[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 이용 ● 문서에서 데이터를 읽고 추출하기 ● 봇 차단을 피하는 법 ● 지저분한 데이터 형식 정돈하기 ● 크롤러를 이용한 웹사이트 테스팅

추천평

웹 크롤링에 많은 도움을 주었던 도서가 6년 만에 더 알찬 내용으로 돌아왔습니다. 현시점과 맞지 않는 X(구 트위터)나 구글 API 사용에 대한 내용은 배제하고, 지금 많이 사용되는 스크레이피를 활용하는 내용을 추가하는 등 현시점에 맞는 내용으로 업데이트되었습니다.

  • 강찬석 (LG전자 소프트웨어 엔지니어)

자신만의 웹 크롤러는 단순한 기술적 도구를 넘어 업무를 혁신적으로 지원하는 강력한 파트너가 될 것입니다. 그 여정에 있어 이 책은 든든한 길잡이가 되어 줄 것입니다.

  • 김호영 (고등과학원 HPC 관리자)

이 책의 장점은 실용적이고 따라 하기 쉬운 예제들을 제공하여 복잡한 개념을 이해하기 쉽게 설명한다는 점입니다.

  • 박상길 (소프트웨어 엔지니어)

IT 개발자뿐만 아니라 데이터 분석가, 연구자에게도 충분한 지식을 제공하므로, 웹 스크레이핑 전문가로 성장하고 싶은 모든 분에게 강력히 추천합니다.

  • 이석곤 (AI/빅데이터 엔지니어)

이 책은 웹 스크레이핑의 기초부터 이미지 처리, 텍스트 인식, 병렬 처리 등 고급 기술까지 다루고 있어, 데이터 수집에 관심 있는 모든 분께 추천드립니다.

  • 임승민 (CSLEE DS팀)

체계적인 이론 설명과 함께 실제 사례를 바탕으로 내용을 전개하여, 단순히 기술을 설명하는 데 그치지 않고 실무 환경에서 어떻게 활용할 수 있는지 구체적으로 보여줍니다.

  • 임재곤 (소프트웨어 엔지니어)

이 책은 단순한 기술 가이드북을 넘어, 데이터 기반 혁신을 구현하는 데 필요한 통찰을 제공합니다.

  • 전준규 (프로젝트 매니저)

인터넷이 정보의 바다라고 하지만 이 책을 읽으며, 책 한 권에 밀도 있게 축적된 지식은 아직 이길 수 없다는 것을 다시 한번 확인했습니다.

  • 채민석 (integrate.io APAC 세일즈 엔지니어)

이 책은 웹 스크레이핑 기술의 기초 이론 설명과 함께 마케팅, 데이터 과학, 보안 등 실제 업무에 바로 적용할 수 있는 기술과 방법론을 소개합니다.

  • 한경흠 (서비스 기획자)