Top

파이썬 웹 스크래핑 [다양한 상황 해결을 통한 웹 스크랩]

  • 원서명Web Scraping with Python (ISBN 9781782164364)
  • 지은이리차드 로손(Richard Lawson)
  • 옮긴이김영하
  • ISBN : 9788960779594
  • 20,000원
  • 2017년 04월 27일 펴냄 (절판)
  • 페이퍼백 | 224쪽 | 188*235mm
  • 시리즈 : acorn+PACKT

판매처

  • 현재 이 도서는 구매할 수 없습니다.

책 소개

가장 최신 버전의 소스 파일은 여기에서 내려 받으실 수 있습니다.
https://github.com/fermat39/acornpub-python-webscraping

요약

웹 스크랩의 기본 개념과 파이썬 3를 이용해 쉽고 빠르게 웹 스크래핑하는 방법을 알려준다. 웹사이트를 다운로드해 정규식을 통해서 스크랩하는 방식부터 파이썬 라이브러리(Scrapy, Selenium)까지 점차 개념을 확장해나가 기초를 다질 수 있다. 여러 상황을 고려한 예제로 기본 원리를 테스트할 수 있으며, 배운 방법을 실제 서비스를 제공하는 웹사이트에 적용하는 방법도 배울 수 있다.

이 책에서 다루는 내용

■ 웹사이트 수집을 위한 링크 선택 방법
■ lxml을 이용한 웹사이트 데이터 추출
■ 동시에 여러 웹 페이지를 처리하기 위해 스레드를 사용하는 크롤러 제작
■ 대역폭을 줄이기 위한 다운로드 캐시
■ 자바스크립트 기반 웹사이트를 분석하는 방법
■ 폼과 세션을 처리하는 방법
■ 캡차(CAPTCHA)로 보호되는 웹사이트 처리
■ AJAX 호출 리버스 엔지니어링
■ Scrapy로 고급 스크래퍼 제작

이 책의 대상 독자

웹사이트에서 데이터를 스크랩하기 위해 믿을 만한 프로그램을 만들고자 하는 개발자를 대상으로 하는 책으로 파이썬 개발 경험이 있다고 가정하고 설명한다. 파이썬이 아니더라도 다른 프로그래밍 경험이 있어도 이 책을 읽고 이해할 수 있다.

이 책의 구성

1장, '웹 스크래핑 소개'에서는 웹 스크래핑을 소개하고 웹사이트를 수집하는 방법을 알아본다.
2장, '데이터 스크래핑'에서는 웹 페이지에서 데이터를 추출하는 방법을 알아본다.
3장, '캐시를 사용한 다운로드'에서는 결과를 캐시 처리해 다시 다운로드하지 않는 방법을 알아본다.
4장, '병렬 다운로드'에서는 동시에 다운로드해 더 빠르게 데이터를 스크랩하는 방법을 알아본다.
5장, '동적 생성 콘텐츠'에서는 동적 웹사이트에서 데이터를 추출하는 방법을 알아본다.
6장, '폼 처리'에서는 찾고자 하는 데이터에 접근하기 위해 폼을 처리하는 방법을 알아본다.
7장, '캡차(CAPTCHA) 해결'에서는 캡차 이미지에 의해 보호되는 데이터에 접근하는 방법을 알아본다.
8장, 'Scrapy'에서는 유명한 고급 Scrapy 프레임워크를 사용하는 방법을 알아본다.
9장, '실제 웹사이트 적용'에서는 지금까지 다뤄진 웹 스크래핑 기술을 실제 웹사이트에 적용해본다.

저자/역자 소개

지은이의 말

인터넷에는 정말 유용할 데이터들을 갖고 있으며, 이 데이터는 공개돼 있고 공짜로 접근할 수 있다. 그러나 이런 데이터는 쉽게 재사용하기 어렵다. 웹사이트의 구조와 스타일에 맞게 구성돼야 하고 유용하게 추출돼야 한다. 웹 페이지에서 데이터를 추출하는 과정은 웹 스크래핑이라고 알려져 있고 온라인상에서 이용 가능한 정보들로 계속해서 유용하게 되고 있다.

지은이 소개

리차드 로손(Richard Lawson)

오스트레일리아 출신으로 멜버른대학교에서 전산학을 전공했다. 졸업 후, 웹 스크랩을 전문으로 하는 사업을 시작했고 50개국이 넘는 곳을 원격으로 일하며 세계를 여행한다. 유창하게 에스페란토어를 사용하고 중국어와 한국어로 대화할 수 있으며, 오픈소스 소프트웨어에 참여하고 번역하는 일에 활동적이다. 현재 옥스포드 대학에서 대학원 과정에 있으며 여가에는 드론 개발을 즐긴다.

옮긴이의 말

요즘도 수집하는 사람이 있을지 모르겠지만, 드라마 <응답하라>의 시대를 기억하는 사람이라면 좋아하는 연예인의 기사를 예쁘게 오려 수집한 기억이 있으리라. 신문 및 잡지라는 큰 정보의 덩어리에서 원하는 부분을 칼이나 가위로 오려 노트에 붙인 것이다. 이런 아날로그적인 방법이 현대에 와서는 디지털 방식으로 전환되고 있다. 개인적으로 스플렁크(Splunk)라는 빅데이터 플랫폼의 업무를 담당하면서 자료의 수집 및 저장에 대한 관심이 많아졌다. 요즘 각종 서비스들이 데이터 공유를 위해 API를 제공하면서 수집이 쉬워졌다. 하지만 원하는 데이터를 얻기에는 제한적이기에 웹 크롤링(Web Crawling)을 통해 수집해서 웹 스크래핑(Web Scraping)으로 원하는 부분을 추출하는 과정이 필요하다. 이 책은 웹 스크래핑에 대한 법적 문제를 먼저 다루고 기술적인 방법의 가장 기초적인 단계에서 점점 발전시켜 Scrapy라는 수집 전문 프레임워크까지 다룬다. 제로 웹 페이지에서 발생할 수 있는 상황에 대한 모든 부분을 다룬다. 많은 웹 페이지를 다운로드하면서 캡차(Captcha)나 로그인, 동적 데이터 처리 등 책에서 제시한 경우를 따라 하다 보면 어느덧 웹 스크래핑에 자신감을 느끼게 될 것이다. 이 책은 독자가 파이썬에 대한 기본 지식이 있다고 가정하기 때문에 파이썬 언어 자체에 대한 설명은 없다. 책 자체는 얇지만 내용은 아주 풍부하다. 이 한국어판이 나오기까지 정말 많은 시간이 걸렸다. 파이썬 2로 만들어진 내용을 파이썬 3로 바꾸면서 가급적이면 실행되도록 수정했지만 실행 및 개선 사항이 있다면, 언제든지 연락 바란다.

옮긴이 소개

김영하

타임게이트에서 소프트웨어연구소 수석 연구원으로서 머신 데이터 플랫폼(Splunk)와 모니터링 솔루션 eG의 기술 지원을 담당하고 있다. 또한 타임게이트 자체 제품인 가상화 관리 및 모니터링을 개발한다.

목차

목차
  • 1장. 웹 스크래핑 소개
    • 웹 스크래핑은 언제 필요한가?
    • 웹 스크래핑은 합법적인가?
    • 사전 조사
      • robots.txt 확인
      • Sitemap 살펴보기
      • 웹사이트의 크기 추정
      • 웹사이트에 사용된 웹 기술 확인
      • 웹사이트 소유자 찾기
    • 첫 번째 웹사이트 크롤링
      • 웹사이트 다운로드
        • 다운로드 재시도
        • 사용자 에이전트 설정
      • Sitemap 크롤러
      • ID 반복 크롤러
      • 링크 크롤러
        • 고급 기능
    • 요약

  • 2장. 데이터 스크래핑
    • 웹 페이지 분석
    • 웹 페이지를 스크랩하는 3가지 방법
      • 정규식
      • Beautiful Soup
      • Lxml
        • CSS 선택자
      • 성능 비교
        • 스크래핑 결과
      • 개요
      • 링크 크롤러에 스크랩 콜백 추가
    • 요약

  • 3장. 캐시를 사용한 다운로드
    • 링크 크롤러에 캐시 기능 추가
    • 디스크 캐시 사용
      • 기능 구현
      • 캐시 테스트
      • 저장 디스크량 줄이기
      • 오래된 데이터 삭제
      • 디스크 캐시의 단점
    • 데이터베이스 캐시
      • NoSQL이란?
      • 몽고DB 설치
      • 몽고DB 개요
      • 몽고DB 캐시 구현
      • 압축
      • 캐시 테스트
    • 요약

  • 4장. 병렬 다운로드
    • 100만 개 웹 페이지
      • Alexa 목록 분석
    • 순차적 크롤러
    • 스레드 크롤러
      • 스레드와 프로세스 동작 방식
      • 구현
      • 상호프로세스 크롤러
    • 성능
    • 요약

  • 5장. 동적 생성 콘텐츠
    • 동적 웹 페이지 예제
    • 동적 웹 페이지 분석
      • 에지 케이스
    • 동적 웹 페이지 렌더링
      • PyQt와 PySide
      • 자바스크립트 실행
      • 웹킷으로 웹사이트 처리
        • 결과 기다리기
        • 렌더 클래스
      • 셀레니움
    • 요약

  • 6장. 폼 처리'
    • 로그인 폼
      • 웹 브라우저에서 쿠키 가져오기
    • 내용을 최신화하는 로그인 스크립트 확장
    • Mechanize 모듈로 폼 처리 자동화
    • 요약

  • 7장. 캡차 해결
    • 계정 등록
      • 캡차 이미지 로딩
    • 광학 문자 인식
      • 개선할 사항
    • 복잡한 캡차 해결
      • 캡차 처리 서비스 이용
      • 9kw 시작
        • 9kw CAPTCHA API
      • 등록 통합
    • 요약

  • 8장. Scrapy
    • 설치
    • 프로젝트 시작
      • 모델 정의
      • 스파이더 생성
        • 설정 조정
        • 스파이더 테스트
      • shell 커맨드로 스크래핑
      • 결과 확인
      • 크롤링 중단과 재개
    • 포르티아로 시각적 스크래핑
      • 설치
      • 어노테이션
      • 스파이더 개선
      • 결과 확인
    • Scrapely로 수집 자동화
    • 요약

  • 9장. 실제 웹사이트 적용
    • 구글 검색 엔진
    • 페이스북
      • 웹사이트
      • API
    • BMW
    • 요약

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안