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

한빛출판네트워크

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

초간단 나만의 웹 크롤러로 원하는 데이터를 가져오는 방법

한빛미디어

번역서

절판

  • 저자 : 라이언 미첼
  • 번역 : 한선용
  • 출간 : 2016-12-01
  • 페이지 : 284 쪽
  • ISBN : 9788968484698
  • 물류코드 :2469
  • 개정판정보 :개정판이 새로 출간되었습니다. 개정판 보기
  • 초급 초중급 중급 중고급 고급
4.8점 (26명)
좋아요 : 68

웹 어디서든 내가 원하는 데이터를 쏙쏙쏙 

 

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

 

detail.jpg

 

라이언 미첼 저자

라이언 미첼

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

한선용 역자

한선용

웹 표준과 자바스크립트에 관심이 많은 번역가입니다. 2008년부터 웹과 관련된 일을 했으며, ‘WCAG 2.0을 위한 일반적 테크닉’ 등의 공개 문서를 번역해 웹에 게시했습니다. 한빛미디어에서 『파이썬 크래시 코스』(2023), 『엑셀이 편해지는 파이썬』(2022), 『파이썬으로 웹 크롤러 만들기』(2019) 등을 번역하며 활발하게 활동하고 있습니다.
 

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.세 가지 웹 스크레이퍼 사례

 

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

 

우리는 생활 속의 많은 부분이 인터넷에서 이루어지는 시대에 살고 있습니다. 그 어느 때보다 많은 데이터로 넘쳐나는 웹 세상에서 필요한 데이터를 가져와 분석하는 일의 중요성도 커졌습니다. 인터넷을 활보하며 데이터를 수집하는 프로그램을 웹 크롤러 혹은 웹 스크레이퍼라고 합니다. 웹 크롤러는 데이터 수집을 자동화하므로 비즈니스 의사 결정에 큰 도움이 되고, 웹사이트 스캐너로 활용할 수도 있어 보안 분야에서도 사용됩니다.

웹 크롤링은 인증 같은 웹 기술에 대한 이해는 물론, 데이터 정제, DB 저장 등 여러 기술에 대한 지식이 필요한 분야에 속합니다. 따라서 프로그래밍 스킬을 향상하는 데에 아주 좋은 주제이며, 과거에는 프로그래밍 전문가만이 웹 크롤러를 만들 수 있었습니다. 하지만 파이썬이라는 배우기 쉬운 언어와 쉽게 쓸 수 있는 각종 라이브러리들이 등장하며 이러한 장벽은 무너졌습니다. 기업 사례뿐만 아니라 음원 차트 추출하기, 서울의 기온 데이터 추출하기, 게시판 문서 다운로더 등 주위를 둘러보면 의외로 많은 생활 속 사례를 찾을 수 있습니다.

『파이썬으로 웹 크롤러 만들기』는 웹 크롤링이라는 주제 하나에 집중하는 책입니다. 업무상 웹 크롤러를 만들다 푹 빠진 나머지 회사를 나와서도 계속 웹 크롤러를 만들고 있는 개발자가 썼습니다. 파이썬과 라이브러리를 이용하여 아주 간단한 웹 크롤러를 만드는 것으로 시작해서, HTML, API 등 웹 기술의 기초부터 데이터 정제 및 저장, 자연어 처리, 이미지 및 텍스트 인식 등 고급 기법까지 종합적으로 살펴봅니다.

책의 1부는 파이썬과 함께 BeautifulSoup, 스크래파이 같은 라이브러리를 이용하여 아주 간단하게 웹 크롤러를 만들어보며 시작합니다. 나아가 API를 이용한 수집, 데이터를 MySQL로 저장하는 방법, CSV, PDF, 워드 파일을 분석하는 방법까지 필요에 따라 다양한 라이브러리를 활용하여 웹 크롤러를 구현하는 방법에 집중합니다. 위키백과를 크롤링하며 ‘케빈 베이컨의 여섯 다리’(과연 전 세계 사람은 여섯 다리만 거치면 연결될까요?) 문제를 풀어보는 예제도 있습니다.

2부는 웹 크롤링을 둘러싼 더욱 흥미로운 주제와 기법을 다룹니다. 웹에서 가져온 지저분한 데이터를 정돈하고 정제하는 방법(오픈리파인), 자연어 처리(NLTK), 폼과 로그인 뚫기(requests), 자바스크립트로 만든 동적 페이지 수집하기(셀레니움), 이미지 처리(필로) 및 텍스트 인식(테서랙트), 웹사이트 테스트(unittest), 원격 크롤링(토르) 등 고급 기법과 라이브러리 사용법을 살펴봅니다. 특히 텍스트 인식은 CAPTCHA, 즉 자동 가입 방지 문자를 우회하는 데 유용하며, 크롤링을 막는 방해물을 뚫기 위한 ‘사람처럼 보이기’ 기법은 아예 한 장을 할애해서 자세히 소개합니다.

저자는 웹 크롤링에 푹 빠져 있지만 웹 크롤러를 악용하는 것까지 찬성하는 것은 아닙니다. 부록에서는 웹 크롤링과 관련된 법적, 윤리적 쟁점과 실제 소송 사례 세 가지를 살펴보며 균형 잡힌 시각을 접할 수 있습니다.

오늘날 데이터가 넘쳐나는 웹에서 웹 크롤러로 할 수 있는 일은 무궁무진합니다. 필요한 것은 약간의 파이썬 프로그래밍 능력 하나뿐입니다. 나머지는 이 책에서 배울 수 있습니다. 웹 크롤링을 적용하여 업무를 자동화하고 생활 속에서 유용한 통찰을 찾는 데 이 책이 큰 도움이 되리라 믿습니다. 복잡 다양한 웹 세상에서 우아하게 데이터를 수집하고 싶은, ‘일상의 데이터 분석가’를 꿈꾸는 이들에게 이 책을 권합니다.

 

1부

: 닭 잡는 데 소 잡는 칼을 쓸 필요는 없다.

제목이 적절하다. 사실 급하게 크롤링을 해야 되는 경우가 존재할 때 무턱대고 '20단계나 되는 HTML 덩어리 속'에서 원하는 걸 찾을 코드를 작성했던 적이 있다. 그건 단발성 태스크였기 때문에 그 자리에서 즉시 완료할 수 있었지만 만약 수시간동안 혹은 수일동안 진행되어야 했던 태스크였다면..? 저자가 예시를 든 코드줄처럼 아주 복잡하게 꾸역꾸역 찾아올 수 있지만 사이트 개발자가 코드를 수정하는 순간 다시 코드를 짜야 하는 경우가 생긴다. 더군다나 그게 자동으로 크롤링 해서 db화를 시키거나 기타 다른 파이프라인에 속하는 작업이었다면 에러가 필수적이다. 

 

그래서 여러 대안을 알려주는데 유익했다.

- '페이지 인쇄' 링크 등이나 더 간단한 html 구조를 갖춘 모바일 버전 사이트에서 크롤링을 시도하기

-> 이 부분은 나중에 유사 작업시에 html이 더럽다는 느낌이 든다면 시도해볼 예정이다. 

- 원하는 정보가 오직 해당 페이지에서만 있는지 확인하기

-> 이 부분도 의외로 많은 초심자? 혹은 타직무자들이 간과할 부분인데 경험상 원하는 정보가 정말로 specific & detailed한 부분이 아니라면 긁어오기 쉬운 페이지가 존재할 수도 있다. 간단한 생각의 전환이지만 염두하지 않는다면 까먹기 쉬운 부분이다.

 

또 저자의 설명을 쉽게 따라갈 수 있도록 깃헙에 이미 주피터노트북으로 코드를 제공하고 있기 때문에 책에서 설명한 부분을 실습으로 팔로업하는 것도 간편하다.

 

-bs.body.h1 : 의 경우 body의 자손에서 첫번째 h1태그를 선택하지 body 밖의 h1에 대해서는 찾지 않는다.

이처럼 크롤링할 때 부모의 자식, 자손 등의 범위에서 어디까지를 볼 것인지를 생각해야 성공적인 작업을 할 수 있다.

또한 당장 내가 크롤링할 테이블이 해당 페이지에서 딱 1개밖에 없다고 해도 되도록 저자처럼 위치를 명확히 해주는 게 좋겠다. 크롤링 하는 페이지는 개발자가 언제들 바꿀 수 있는 부분이기 때문이다.

 

그리고 잊을만 하면 크롤링에서 정규식을 사용해야 될 때가 온다. 이때 사용하기 좋도록 저자가 잘 정리해놨다.

특히 주로 쓰는 분야는 이미지를 저장할때. 나 또한 비슷한 태스크를 진행시에 저자처럼 한다. 

 

실제 크롤링할 예제 html을 제공하고 있기 때문에 각 예제 페이지 구조가 뭔지, 그리고 저자가 어떤 경우를 설명하는 것인지를 구별해놓는다면 유사 작업에 들어갔을 때 처음부터 헤매지 않고 진행이 가능하겠다.

 

또한 크롤링에서는 예외 처리를 빼먹지 말아야 한다. 우리가 가져올 페이지는 유동적이기 때문에 항상 변화에 대비가 되어 있어야 한다. 

 

그리고 몰랐는데 다크 웹도 스크랩할 수도 있다고 한다. 다크 웹은 몇몇 수상쩍인 경우들이 있다 정도만 알고있다. 그런데 접근 가능하다니, 새로운 소식이다.

 

또 참고할 점, 파이썬은 재귀 호출을 1000회로 제한한다고 하니 위키백과 등 큰 문서를 크롤링할 때는 참고하면 되겠다.

 

html/css에 대한 이해가 있다면 그냥 초심자보다는 크롤링이 좀 더 쉬울 것이므로 시간 여유가 있는 초심자는 염두하면 되겠다.

 

또 책에서 웹 스크레이핑의 합법성과 윤리에 대해서도 1장을 할애하고 있는 것도 좋았다.

 

실제로 국내에서도 취업 사이트 간의 무단 크롤링에 대한 법적 처벌 기록이 있으므로 개인 사용자는 너무 욕심을 부려서 데이터를 이용하는 것은 자제해야겠다.

 

그리고 크롤링을 계획중이라면 책에서처럼 순서도로 한번 정리하고 들어가는 게 낫다. 

 

또 저자가 추천하는 크롤러 개발 프레임워크는 스크레이피 Scrapy였다.

Scrapy가 로깅 관리할 때도 좋은 것 같아 향후에는 이걸로 바꿔보려고 한다. 

 

크롤링이 워낙 정보침해? 법과 윤리적인 부분에서 애매한 행위가 있기 때문에 저자가 틈틈이 어떤 기술을 사용할 때 조심하거나 알아두면 좋을 내용에 대해서도 안내하는 것이 좋았다. 실제로도 크롤링을 처음 접하는 타직무 관련자가 이 기술을 접했을 때 무분별하게 사용하려는 시도를 많이 봤기도 했다.

 

 

2부

8장

사실 크롤링을 하다보면 데이터가 더.럽.다.. 정리하는 데 시간이 진짜 오래 걸린다. 이를 해결하기 위해 저자는 오픈리파인(openrefine)이라는 프로젝트를 제시한다. 내려받아서 csv파일로 데이터를 바꿔 사용할 수 있다. 기회되면 이것도 실제로 적용해볼 예정이다. 2부의 일부 내용은 기존에 데이터 분석을 좀 공부하거나 NLP, Vision 등의 코드를 돌려본 사람이라면 익숙하고 기초적인 내용이 나온다고 생각할 수 있다. 이 부분은 참고해서 필요하지 않다면 그냥 넘겨도 되겠다.

 

셀레니움도 조금은 다루고 있긴 한데 조금 더 보태자면 창 전환하는 것까지 하면 좋다 ^^

 

이밖에 14장 스크레이핑 함정 피하기도 실무에서 도움이 되는 내용이다. 혹은 연습하려는 페이지에서 장애물이 존재한다면 읽어보면 좋다.

 

16장 병렬 웹 크롤링 또한 유익한 내용이다. 멀티프로세싱에 대한 경험이 있다면 좀 더 쉽게 읽을 수 있다.

 

18장

저자가 말하는 웹 스크레이핑의 합법성에 대해서는 적어도 '엔지니어'의 관점에서는 저작권 잇는 자료를 원저자나 저작권 소유자로부터 허가받지 않고 직접 게시하는 것은 안되며, 접근 권한이 있는 저작권 자료를 자기 db에 저장하고 분석 목적으로 '공개하지 않은 채' 사용한다면 괜찮다고 한다. 

단, 그 db를 웹 등에 게시해서 누군가가 보거나 다운받게 만들면 안된다. 

다만 db를 분석하고 단어 통계, 저자 리스트, 기타 데이터에 대한 메타 분석을 게시하는 것은 괜찮다고 한다. 

확실한 부분은 미국에 한정지어 DMCA의 '공정 이용' 절을 검토해보라고 한다.

 

나같은 경우도 혹시 몰라 robots.txt를 확인하고 있다. 그리고 이 파일이 있어서 대부분 위키백과를 그렇게 많이 크롤링하는 건가 라는 생각도 들었다. 책에서도 나오지만 위키백과의 robots.txt는 웹 스크레이핑에 대해 굉장히 관대하다. 

 

 

 

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

IMG_9837.JPG

 

 

웹에서 내가 원하는 데이터를 지속적으로 가져오는 프로그램을 만들고 싶어하는 사람들이 많다. 이 책 "Web Scraping with Python: 파이썬으로 웹 크롤러 만들기 2판"에서는 파이썬으로 나만의 웹 크롤러를 만드는 방법을 알려준다. 기본적으로 파이썬 프로그래밍 언어와 웹 프로그래밍에 대해 기초는 가지고 있어야 책에 있는 코드들을 이해하기 좋다.

책의 파트1의 챕터들의 코드를 실습해보고 나면 웹 페이지를 가져오는 방법과 그 안에서 내가 원하는 데이터를 가져오는 원리를 알 수 있다. 복잡한 웹 페이지에서도 필요한 정보를 추출하는 노하우를 책에서 자세히 설명해준다. 특히 파이썬 언어의 간결한 문법 덕분에 코드를 이해하기에도 한결 수월하다. 처음엔 한 페이지의 정보만 가져오지만 나중에는 사이트의 모든 페이지를 가져오는 크롤러도 만들어 볼 수 있다. 그리고 다양한 유형의 웹 사이트에서 정보를 가져오기 위한 모델 수립 과정도 배울 수 있다. 파트1의 후반부에서는 수집한 데이터를 데이터베이스, 파일 스트림, 이메일로 관리할 수 있는 방법을 소개한다. 이 부분을 잘 배우고 나면 웬만한 애플리케이션을 제작하는데 문제가 없을 것이다.

로그인이 필요한 사이트의 데이터는 어떻게 가져올지 궁금하였는데 이 책의 파트2를 읽으면 이 문제의 정답을 알 수 있다. 파트2에서는 좀 더 고급 스크레이핑 기술을 알려준다. 내용이 조금 어렵기 때문에 필요한 부분을 먼저 읽는 것도 방법일 수 있다. 단순히 웹 크롤러를 만드는 것에 국한하지 않고 웹 스크레이핑의 윤리에 관해 생각해볼 수 있는 챕터가 있어 흥미롭게 읽을 수 있었다.

 

<파이썬으로 웹 크롤러 만들기>, 라이언 미첼 지음, 한선용 옮김, 한빛미디어, 2020

 

 

기후위기, 플라스틱 문제 등 환경관련 규제 변화와 다른 기업의동향을 파악하고자 뉴스를 자주 검색한다. 키워드 중심으로 뉴스를 클리핑해주는 구글알리미를 사용하지만, 클리핑 되지 않는 언론사가 많고, 중복된 기사들도 많아 유용하지않을 때도 있다.

 

 

다른 기업의 보도자료 등을 통해 동향을 파악하기도 하는데, 일일이접속해 찾는 게 만만치 않다. 그럴때마다 내가 원하는 새로운 소식을 자동으로 모아주는 프로그램이 있다면얼마나 좋을까 생각하게 된다.

 

 

웹 크롤러, ‘웹에서 원하는 정보와 자료를 수집하는 프로그램을 알게 되었다. 자료를 찾는 시간을 획기적으로 줄여 줄 것으로 기대되었다. 그렇게 <파이썬으로 웹 크롤러 만들기>를 펼쳤다.

 

 

timesnap-1603606810707.jpg

 

 

 

 

필자가 웹 스크레이핑에 대해 이야기할 때마다 누군가는 항상 이렇게 묻습니다.
구글 같은 기업은 어떻게 만들어지나요?”
필자의 대답은 항상 같습니다.
첫째, 수십억 달러를 모아 세계에서 가장 훌륭한 데이터센터를 만들고
세계 곳곳에 배치합니다. 둘째, 웹 크롤러를만듭니다.”(67)

 

 

이론적으로는, 웹 스크레이핑이란데이터를 수집하는 작업 전체를 말하며,
API
를 활용하는 프로그램이나 사람이 직접 웹 브라우저를 조작하는 방법만
제외하면 어떤 방법을 쓰든 상관없습니다.(7)

 

 

몇 가지 예외를 제외하면, 무언가를브라우저에서 볼 수 있다면
그것은 파이썬 스크립트로도 접근할 수 있습니다.
스크립트로 접근할 수 있다면 데이터베이스에 저장도 가능합니다.
데이터베이스에 저장할 수 있다면 그 데이터로 할 수 있는 일은 무궁무진합니다.(8)

 

 PSX_20201025_163004.jpg PSX_20201025_163030.jpg

 

업무 시간을 획기적(?)으로 줄여 줄 웹 크롤러를 찾았지만, ‘웹크롤러를 만들기 위한 더 큰 벽을 만났다. 파이썬을 깊이이해하지 못한 상황에서 이 책을 이해하기에는 어려움이 있었다. 다만 웹 스크레이핑의 개념 등 개괄적인내용과 함께 웹 스크레이핑과 관련한 법률적, 윤리적 문제에 대해서도 이해할 수 있는 계기가 되었다.

 

 

파이썬이 아닌 몇번의 클릭과 드로잉으로 만들 수 있는 프로그램이 개발되길 간절히 기대해 본다.

 

 

* 해당 도서는 출판사로부터 무상으로 제공받았으며, 제 주관에 따라 솔직하게 작성했습니다.

 

IMG_1174.jpg

 

자바 개발자로 일을 하다가 최근에 파이썬과 클롤링에 대해서 조금 관심을 갖고 있는 찰나에 우연히 서평이벤트에 당첨된 파이썬으로 웹 크롤러 만들기를 읽게 되었다.

 

우선 책은 매우 잘 쓰여 있는 듯 하다. 파이썬 개발자가 아니더라도 한번쯤 읽어 볼만하다는 생각이 들며 파이썬 기본 문법만 배우고 따라해도 충분히 이해할만 하다. 

 

또한 크롤링에 대해 관심을 가지면서 궁금했던것은 법적인 문제였다. 

아주 자세하게 설명한 것은 아니지만 크롤링에 시작하려는 사람들은 18장 웹 스크레이핑의 합법성과 윤리를 먼저 읽고 시작하는 것도 좋을거 같다.

 

이 책을 정말 잘 설명한 것은 책의 뒷면에 있다.

--

예제를 추가  업데이트했고 모던 웹에서 거의 모든 종류의 데이터를 가져오는 방법을 포괄적으로 다룬다.

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

     


  •  

    [본 리뷰는 출판사가 제공한 도서를 읽고 직접 작성하였습니다.]

    - 추천대상 : 초보 개발자

    - 기초지식필요 : HTML, 파이썬, 웹개발 절차

    - 난이도 : 초중급

    - 이동성 : 356page /  가지고 다니면서 진행할 수 있음

    1.jpg

    수많은 데이터가 생산되고 있지만, 내가 원하는 데이터를 직접 수집하기에는 쉽지 않다.

     

    윤리성에 대해서 조금은 오해나 억측이 있긴하지만, 클로러를 통해서 내가 관심있는 분야에 데이터를 수집할 수 있다.

    이 책은 간단하게 나만의 웹 크롤러를 개발하고, 데이터를 가공 수집하는 참고서적이다.

    OREILLY 책으로서 유명한 도서로, 클로러 개발자의 필독서이다.

     

     

    3.jpg

    이책은 기술서적이지만, 개발자로서의 '철학'을 다양하게 담고 있다.

     

    특히 책 곳곳에 웹 크롤러 모델에 대한 생각들을 적어놓고 있으므로, 중급 개발자들은 이제는 본인의 개발에 대한 철학을 가질수있는 기회도 함께 제공하고 있다고 느낀다.

     

    "구글 같은 기업은 수십억 달러를 모아 세계에서 가장 훌륭한 데이터 센터를 지었고, 두번째는 웹 크롤러는 만듭니다."

     

    의미있는 문구이다.

     

     

    2.jpg

     

     

    책을 따라가면서 웹스크레이퍼 BeautifulSoup 라이브러리를 만날수있다. 파이썬의 기본 라이브러리가 아니므로 반드시 추가 설치해야한다.

    파이썬 함수를 결합하여 다양한 웹 스크레이핑을 코드가 예제로 되어 있어서 쉽게 따라할 수 있다. 약 60줄도 안된느 코드로도 충분하다.

    실습형으로서 좋은 예제들이 많이 담겨져있다. 또한, 작업에 대한 내용이해와 시각화 순서도 제공하고 있다.

    

    웹크롤러를 개발함으로서, 다양한 데이터를 수집하고, 핸들링해보는 좋은 서적으로 추천한다.

    보통 이런 제목을 하고 있는 책들을 보면, HTML 구조에 대해서 이야기 한다거나, 파이썬 언어에 대해서 주로 다루고 있는 

    책들이 많습니다. 그런데 책의 머리말에서 부터 필자는 이야기 하고 있습니다. 파이썬을 잘 모르는 독자들에게는 다소 어렵게 느껴질 수 

    있다고 말하고 있습니다. 또한 파이썬 가이드가 필요한 사람들에게는 어떤 책을 읽고, 어떤 강의를 보면 좋을지도

    앞서 소개하고 있어, 멋모르고 웹 크롤링이 멋져보여 들어왔던 뉴비들에게도 손쉬운 가이드르를 주고 있습니다.

    책은 크게 1부와 2부의 주제로 나누어서 소개를 하고 있습니다. 1부는 웹 스크레이핑과 웹 크롤링에 대해 깊이 있게 설명하고 있고,

    2부에서는 독자가 웹 스크레이퍼를 만들 때 유용한 추가 주제에 대해 다루고 있습니다.  1부에서 다루는 내용은 어떤 웹 스크레핑 교제에서도

    볼 수 있는 또는 어떤 블로그에서도 볼수 있는 손쉬운 내용들을 다루고 있다면, 2부에서는 폼과 로그인 뚫기, 자연어 툴킷을 이용한

    자연어 분석으로 좀더 스크래핑한 자료들의 검색을 효과적으로 이루어지게 하는 방법등등 실제로 스크래핑을 하면서

    부딪히는 난관 또는 유용한 기술들에 대해서 이야기 하고 있습니다. 저는 이책을 보면서 한 번 감탄했던 것은, 우리가 

    어떤 사이트의 위변조 방자 문구라고 로그인이나 회원 가입시 알아볼수 없는 코드 형태 이미지의 글귀들을 넣어야 하는 사이트들을

    본적이 있을 것입니다. 사람도 읽기 어려운 문구들로 코드를 입력하여 회원 가입이나 로그인을 하여야 하는 사이트들을 보며

    도대체 이렇게 까지 해서 가입을 해야하나? 라는 생각이 들었었는데요. 웹 크롤링 세계에서는 이런 것들도 머신러닝을 통하여

    학습시켜 때론 사람보다도 더 정확하게 이 문구에 대해 인지시키는 훈련을 하도록 하고 있다는 내용을 보며서 감탄을 한 적이 있었습니다.

    여러 스크래핑에 대한 기법과 주제에 대해 손쉽게 읽을 수 있어서 좋은 책이었습니다.

     

        웹 스크래핑에 대해 정말 간략하면서도 심도 깊은 주제를 담아 놓은 책을 발견한 것 같다라는 생각이 들었습니다. 

    개발을 하면서, 개발의 설계나 구현에 대한 기술적인 부분도 있겠지만, 데이터를 수집하고 활용하는 측면에서의 기술은 사실 어떤 영감이

    떠오르기 전에는 확장되기가 어려운데, 이런 기술에 대해 습득하면서, 개발자도 사업이나 기획적인 측면에서 데이터를 수집하고 활용할 수 있는 영감이 떠오르도록 해주는 책이 될 수 있겠구나 라는 생각이 들었습니다. 책의 많은 부분에서 흥미를 느낄 수 있어서 좋았습니다.

        이 책에서 크게 단점으로 꼽을 것들은 없겠지만, 혹시 기대하고 있었던 분들에게는 책에서 단점으로 느껴질 수 있는 부분들이 있어

    이야기해봅니다. 파이썬 언어에 대한 부분, 파이썬 개발 환경 설정이나 언어적 스킬을 윈하는 분들에게는 다소 거리가 멀다고 이야기

    할 수 있을 것입니다. 또한 어느 정도 웹 개발에 대한 지식이 있으신 분들이 보면 적합하십니다. 웹 개발에 대한 기반 지식이 없으신 분들은

    다소 책이 어렵다고 느껴지실 수도 있을 것 같습니다.

    표지.jpg

     

    *******  이 책의 특징

    이 책은 웹 스크레이핑을 소개하는 것에 그치지 않고 오늘날 웹에 존재하는 거의 모든 종류의 테이터를 수집, 변형, 사용할 수 있는 상세한 가이드로 읽을 수 있도록 되어있습니다.


    파이썬을 모르는 초심자들에게는 어려운 내용입니다.


    파이선을 다룰줄 아는 초중급자 수준에 만춰 개념을 설명하고 코드 예제를 보여주고 있습니다.


    1부는 웹스크레이핑과 웹 크롤링에 대해 깊이 있게 설명하고 있고, 책에서 사용하는 라이브러리에 중점을 두고 설명합니다.


    1부는 이들 라이브러리와 테크닉에 관한 상세한 레퍼런스로 활용해도 손색이 없도록 구성이 되어있습니다.


    2부는 독자가 웹 스크레이퍼를 만들 때 유용한 추가 주제를 다루고 있습니다.

    방대한 내용으로 모두를 책에서 설명하고 있지는 않고 다른 자원을 통하여 설명하고 있습니다.


    이 책은 원하는 웹 스크레이핑 테크닉이나 정보를 쉽게 찾을 수 있도록 만들어져 있습니다.

     

    단순히 스크레핑만 하면 된다고 생각을 했었는데 막상 이 책을 읽고 나니 무엇을 조심해야 하고 스크레이핑을 하기 위한 많은 생각과 노력이 필요하다는 것을 알게 되었습니다.


    항상 발전하고 있는 웹에서 원하는 데이터를 가져오기 위해서는 스크래이핑을 하는 기술도 같이 발전이 되어야 할 것입니다.


    이 책에서 제시하는 도구들을 이해하는 데 그치지 않고 그 도구들을 결합해서 앞으로 만들어질 문제를 해결하는데 활용할 수 있도록 해야겠습니다.


     

    많은 내용을 배울수 있는 파이썬으로 웹 크롤러 만들기였습니다.

     

    예전부터 오라일리 책을 읽고 싶었다. 그 이유는 귀여운 동물들이 표지에 그려져 있기 떄문인데 이 책에는 사바나천산갑 이라는 동물이 그려져있는것같다. 아무튼 이번에 기회가 되서 파이썬으로 웹 크롤러만들기 2판 책을 읽게 되었다.

    요즘 파이썬이라는 언어 하면 딥러닝 머신러닝 같은 인공지능이 생각나지만 옛날에는 크롤링이 먼저 떠올랐다.

    나도 예전에 직접 파이썬 크롤링을 이용하여 나만의 api를 만들어서 웹페이지에서 호출해본적이 있는데

    그때에는 진짜 간단하게 BeautifulSoup를 이용해서 html내의 데이터를 파싱했었다.

    그런데 이 책을 보니 bs도 다루고 그 뒤에는 스크레이피사용, 데이터를 csv에 저장, 폼과 로그인 뚫기등 고급적인

    내용을 다루고 있어 예전에 bs만 썼던 나에게 새로운 지식을 배우게 해준것 같다.

    그리고 책의 마지막에는 제일 중요한 합법성과 윤리에 대해 다루고있다.

    실제로 내가 듣기로는 어떤 크롤링 프로그램이 크롤링을 하다가 너무 많이 요청을 해서 ip밴을 먹은 경우도 있다고한다.

    그래서 이 챕터 18에서는 저작권법과 robots.txt , 실제 사례를 다루고있어 도움이 많이되었다.

     

    요약

     

    - 두껍지 않아서 좋은 크롤러에 대해 접하기 좋은 크롤링 관련 서적!

    - 크롤링의 시작부터 좀 더 나아간 심화 내용, '이런것도 있으면 좋겠다' 싶은 내용까지 가득!

    - 파이썬을 어느정도 알고 있으면 조금 더 수월하게 볼 수 있음(아에 파이썬에 대한 지식이 없다면 힘들것)

    - 크롤링 윤리에 대해 한번쯤은 생각하게 하는 깔끔한 마무리

    - 2판이라고 홍보하는게 없는걸 보니 1판에 비해 딱히 뭐가 크게 변하고 그런건 없는듯(내용이 좀 더 깔끔해졌나?)

     

    요즘엔 '파이썬' 하면

    '딥러닝'

    '머신러닝'

    '인공지능'

    '빅데이터'

    등을 떠올리지만,

     

    약 5년전만 해도 '파이썬' 하면

    바로 이것을 가장 먼저 떠올렸다.

     

    '크롤링'

     

    크롤링은 '스크래핑', '파싱' 등등...

    여러가지 이름으로 불리지만

    '어떤 데이터를 가져온다'는 의미는 같다.

     

    오늘은 멋쟁이 동물이 함께하는 크롤링 서적

    '파이썬으로 웹 크롤러 만들기 (2판) 이다!

     

    한빛미디어엔 세상의 멸종위기동물의 아름다운 자태가 들어간 서적이 많다.

    처음엔 '뭔 동물이지...' 하면서 프로그래밍과 관련이 있는건가 했지만

    딱히 그런건 아닌것 같다.

     

    왜 동물이 들어갔는지 궁금하시다면 아래 링크로...

     

     

    오라일리(O'Reilly) 동물들은 이상하고 생소한 유닉스 때문에 만들어졌다?!

    오라일리(O'Reilly)표지_동물이야기오라일리에서 동물 표지는 언제, 어떻게 만들어 진거지?1980년대 중반, 오라일리(O'Reilly & Associates)는 유닉스에 관한 짧은 책을우편 주문을 통해 판매했습니다.담�

    www.hanbit.co.kr

    어쨌거나...

    최근 회사에서 크롤링 관련 프로젝트를 시작할 것 같다는 말을 듣고

    짬을 내서 파이썬 크롤링을 시도해 보았다.

     

    워낙 한참 유명했고 지금도 유명한 크롤링이라 자료들이 많아서

    수월하게 진행할 수 있었지만,

    근본적으로 크롤링에 대한 의문은 가져본 적이 없었다.

     

    이 책에는

    기본적인 접근부터 크롤링을 하면서 물음표를 갖게 하는 의문에 대한 이야기도 나와있다.

    여기선 '스크레이퍼' 라고 한다...

    기본적으로 파이썬 문법만으로도 크롤링을 할 수 있지만,

    오랜세월 최적화를 거치면서 손쉽게 사용할 수 있는 파이썬 크롤러 라이브러리

    'BeautifulSoup'의 사용법부터

    크롤링을 하기위한 HTML 분석을 시작으로

    저자가 크롤리을 분석하면서 느꼈던 불편함을 해소하기 위한

    '스크레이피'라는 도구의 사용법,

    또 한단계 더 나아가 크롤링한 데이터를 활용할 수 있는 방법까지

    다양한 크롤링 활용법을 보여준다.

     

    크롤링 활용법을 끝마치면

    '크롤링 끝!'

    이 아니라

    크롤링 된 데이터를 어떻게 해야 좀 더 최적화 할 수 있는지에 대해 이야기 하고,

    좀 더 나아가 크롤링하는 데이터가 '텍스트'에서 끝나지 않고

    '이미지'를 어떻게 인식할 것인지에 대해 이야기해서

    참 흥미로웠다.

     

    마지막으론 크롤링 윤리에 대해 이야기 한다.

    '나는 그냥 보이니까 활용했을 뿐인데' 라는 변명은 이제 통하지 않는 세상이 왔다.

    데이터'라는건 '돈'이 되는 세상이 되었기 때문에

    많은 회사들이 크롤링에 대해 민감할 수 밖에 없어졌다.

     

    크롤링을 할 땐 리소스를 사용하기 때문에 과도한 크롤링은

    해당 사이트에 막심한 손해를 끼칠 수 있으니 주의해야 한다.

    (너무 접속이 지나치면 IP를 차단부터 고소까지... )

     

    이젠 '그냥 하면된다' 가 아니라

    '제대로 알고 해야한다'가 맞는것 같다.

    마지막 장은 내가 하는 일에 대한

    근본적인 생각을 하게 만들기 때문에

    조금 더 의미가 있지 않았나 싶다.

     

    몇년 전, 학부 졸업 프로젝트로 '국회의원 추천 시스템'을 만든 적이 있다. 당시 국회의원 관련된 뉴스 기사나 정보를 수집할 필요가 있었는데, 학부생일때는 파이썬을 사용할 줄 몰랐고 마침 R을 배우고 있어서 rvest와 xml 패키지를 사용해 크롤링을 진행했다. R을 통해 정적인 페이지나 복잡하지 않은 내용은 쉽게 크롤링 할 수 있었지만, 아무래도 일반 프로그래밍 언어에 비해 제한되는 사항이 많았던 것 같다. 특히 자바스크립트로 생성된 페이지의 경우 rvest를 통해 크롤링 할 수 없어 아쉬움을 남긴 채 프로젝트를 끝마친 기억이 있다.



    졸업 후 최근까지 파이썬을 공부하면서 파이썬으로 크롤링을 해보고 싶은 생각이 있었는데 마침 필요한 책이 손에 들어왔다. 기본적인 웹 스크레이퍼 제작부터 문서 파일 처리, 텍스트와 이미지 인식, 병렬 웹 크롤링까지 다루지 않는 부분이 없는 방대한 내용의 책이었다. 특히나 최근에 웹 프로그래밍에 관심을 가지게 되면서 웹의 원리에 대해 열심히 공부하던 중이었는데, 이 책을 통해 웹 상에서 요청하고 응답받는 여러 가지 방식을 실습을 통해 체득하게 되었다.

    이 책의 저자는 웹 크롤링을 진행하면서 막히는 부분에 대해 먼저 경험한 사람으로서 그 해결방법들을 아주 자세하게 이야기하고 있다. 특히 Chapter 10의 '폼과 로그인 뚫기' 부분에서는 로그인 인증을 우회하거나 CAPTCHA를 뚫는 방법에 대해서 설명하면서, 이러한 부분이 보안 관점에서 어떻게 위협이 될 수 있고 취약점이 되는지까지 상세히 설명하고 있다. 웹 사이트 크롤링을 진행함에 있어서 법적인 이슈를 따로 생각해 본 적이 없었는데, 저자는 책 마지막 Chapter를 통해 윤리적, 법적 이슈가 생길 가능성에 대해 경고하고, 일반적으로 웹 크롤링에 적용되는 법을 어긴 사례를 소개해주고 있어서 재미있게 읽을 수 있었다.     

    Chapter 16 '병렬 웹 크롤링' 대해 언급하면서 리뷰를 마치고 싶다. 지금 회사에서 하고 있는 업무에는 딱히 병렬 프로그래밍을 쓸 일이 없어서 학부 때 배웠던 멀티스레드, 멀티프로세스 실행에 대한 개념이 잊혀지고 있었다. 그런데 이 책을 통해 병렬 웹 크롤링에 대한 내용을 읽으면서 병렬 스레드/프로세스 실행 개념을 다시 잡아보게 되어서 개인적으로 만족하고 있다.

    저자는 다음과 같은 상황에서 병렬 웹 크롤링이나 병렬 스레드/프로세스 실행이 더 나을 수 있다고 이야기한다.

    ● 여러 소스(원격 서버)에서 데이터를 수집하는 경우
    ● 수집한 데이터에 이미지 분석이나 OCR처럼 길고 복잡한 작업을 수행해야 하고, 이 작업을 수행하면서 동시에 데이터를 가져올 수 있는 경우
    ● 매 쿼리에 대해 비용을 지불하는 대규모 웹 서비스에 데이터를 수집하거나, 사용 계약의 범위 안에서 다중 연결을 이용하는 경우

    결론적으로 이 책을 요약하자면, 웹에서 내가 원하는 자료를 찾기 위해 문서에서 데이터를 읽고 추출하고 가공해서 분류하고 저장하는 방법에 대해 설명하고 있는 책이다. 두껍지 않은 책이었지만 다루고 있는 내용은 적지 않아서 실습을 통해 시간을 들여 익숙해져야 할 것 같다. 추후에 파이썬을 통해 관심 있는 주제로 크롤링 프로젝트를 진행해보고 싶다.
     


    데이터를 분석 하기 위해서는 먼저 데이터 수집을 해야 합니다. 웹 사이트에서 효율적으로 데이터를 수집하거나, 자동으로 ‘크롤링과 스크레이핑’이 필요합니다. 웹 사이트에서 데이터를 추출하는 것은 어려운 작업이 아니지만 다양한 종류의 웹 사이트에서 자신이 원하는 데이터를 추출하려면 많은 노하우가 필요합니다. 이 책에서는 파이썬 라이브러리를 이용하여 아주 간단한 웹 크롤러를 만드는 것으로 시작해서 HTML, API등 웹 기술의 기초부터 데이터 정제 및 저장 NLTK 처리, 이미지 및 텍스트 인식 등 고급 기법 까지 알려줍니다.


    목차 내용

    1부(1~6장) 스크레이퍼 제작 : 웹 스크레이퍼 소개, 고급 HTML 분석 기법, 크롤링 기초, 웹 크롤링 모델, 스크레이피 , 데이터 저장에 대해서 배웁니다.

    2부(7~18장) 고급 스크레이핑 : 문서 읽기, 데이터 정제, 자연어 I/O, 폼과 로그인 뚫기, 자바스크립트 스크레이핑, API 크롤링, 이미지 처리와 텍스트 인식, 스크레이핑 함정 피하기, 스크레이퍼로 웹 사이트 테스트하기, 병렬 웹 크롤링, 원격 스크레이핑, 웹 스크레이핑의 합법성과 윤리에 대해서 설명합니다.

     

    파이썬으로 웹 크롤러 만들기 2판은 기본 1판 보다 4장이 더 추가가 되어 총 18장으로 구성이 되어 있습니다. 웹 크롤링 기술에 대해 설명 하고, 데이터 정제, 디비 저장등 웹 프로그래밍 스킬을 향상하는데  좋은 주제라고 생각합니다. 그리고 웹 크롤링에 대한 법률적인 사항과 윤리적인 사항에 대해서도 잘 설명하고 있어 웹 크롤러를 악용하지 않도 설명합니다. 출퇴근 시간에 지하철에서 책을 재밌게 읽어 시간 가는줄 몰랐습니다. 초보자가 읽기에 쉽게 설명이 되어 있고 다양한 주제에 대해 다루고 있는것에 비해 책이 얇아 딥하게 내용을 다루지 못한 점이 아쉬웠습니다. 하지만 다양한 주제를 다루면서 충분히 각 장별로 내용을 설명했다고 생각합니다. 데이터 분석로 데이터 수집을 자동으로 하고 싶은 분이나 파이썬으로 웹 크롤링을 하고 싶은 분들에게 이 책을 권합니다.

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

    최근에 미니 프로젝트로 생각해 둔 것이 있었는데, 매일 뉴스 기사에서 단어를 수집할 필요가 있었다. 그리고 파이썬으로 프로젝트를 해보고 싶은 생각도 있었는데 마침 필요한 것들이 전부 있는 책이 손에 들어왔다. HTML파싱에 필요한 라이브러리부터 문서 포맷 파싱, 자연어처리, 이미지 인식, 유닛 테스트까지 다루지 않는 부분이 없는 엄청난 책이었다. 전문서를 읽으면서 가끔 묘한 느낌이 들 때가 있는데 이 책이 그랬다. 책의 두께로만 봐서는 도저히 각 챕터를 전부 다룰 수 없을 것 같은데 정말 그렇게 하고 있었다. 초보자의 관점에서 본 이야기이고, 어떤 챕터는 한 권의 책으로 심층적으로 다뤄도 모자랄 것이다. 하지만 어떤 노하우나 기술의 ‘힌트’를 적절히 배치해놓은 것을 보고 감탄하지 않을 수 없었다. 그런 점에서 이 책은 웹 프로그래밍을 막 시작한 분들에게 굉장히 매력적인 책일 것이다.

    데이터베이스 테크닉과 모범 사례

    5장에서는 관계형 데이터베이스에서 자료를 저장하는 스키마 설계에 대해 고민하게 하는 한편, 성능적인 면에서 쿼리 응답을 빠르게 하기 위한 인덱싱기술도 설명하고 있다.

    책이 다양한 주제에 대해서 다루고 있다보니 원하는 챕터만 찾아봐야겠다고 다짐했다. 그래서 처음에 6장은 넘어가려고 했다. 그런데 웬걸 텍스트 인코딩에 대해 설명을 하고 있어서 읽다보니 한 챕터 전체를 다 읽게 되었다. 텍스트 인코딩에 대한 개괄적 설명, csv, pdf, docx 포맷에서 데이터를 추출하는 방법이 차례로 나온다. 책을 읽는 순서는 관계가 없지만 초보자는 유용한 내용이 많으니 웬만하면 모두 읽는 것이 좋을 것 같다.

    텍스트 인코딩과 인터넷

    데스크탑으로 맥을 쓰면서 멀웨어나 바이러스와는 많이 멀어졌다고 생각했는데 간과한 부분이 있었다. 위키의 유닉스 계열 서버의 점유율을 보면 가장 낮은 것도 60퍼센트를 넘는다. 크롤링을 잘못하면 저자의 말대로 악성코드를 내 컴퓨터로 초대하는 것이나 다름없다. 방어적 프로그래밍을 일깨워주는 참 좋은 책이다… 그리고 이런 ‘주의’표시가 있는 내용이 챕터 마다 있어서 책을 읽고 많이 배울 수 있었다.

    악의적 스크립트 주의하기

    웹 사이트를 돌아다니면서 법적 이슈가 생길 거라고 예상하는 사람이 없으니, 크롤링을 하는 것도 법적인 이슈가 없을 것이라고 예상했다. 그런 점에서 저자가 윤리적인 이슈 및 법적 이슈가 생길 수 있음을 경고해주고, 실제 사례도 소개해주고 있어서 흥미롭게 읽을 수 있었다.

    스크레이핑의 윤리

    curl 커맨드를 이용해서 HTTP 리퀘스트를 보낼 때 실패하는 사이트들이 있었는데 그 때는 어떤 정보를 통해서 확인하는지 몰랐었다. 이런 노하우를 배우다보니 내가 아직도 웹에 대해서 모르는게 굉장히 많다는 생각이 들었다…

    헤더를 유용하게 사용하는 방법

    코딩 컨벤션에 대해 잠깐 언급하고 리뷰를 마치고자 한다. 이전에는 파이썬을 간단히 로직 테스트 용도로만 사용했었다. 그래서 크게 긴 코드를 작성할 일이 없었다. 파이썬 코딩 컨벤션도 딱히 따르는 것이 없었는데 저자의 코드를 따라서 실습하다보니 홑따옴표와 쌍따옴표를 혼용해서 쓰고 있었다. 책에 파이썬 코딩 컨벤션에 대한 언급은 없기 때문에 스택오버플로우에서 관련된 내용을 찾아봤다. 기본적으로 이 논의는 가치가 없는 것(…)으로 보이지만, 참고할 만한 내용은 있었다. 펄 언어에서 보간(Interpolation)가능한 문자열과 보간하지 않는 문자열을 구분하는 문법이 있고, 그 전통이 펄 프로그래머들로부터 파이썬까지 따라왔다는 것, 혹은 (사람이 이해하는)자연어는 쌍따옴표로, 기계가 이해하는 언어는 홑따옴표로 쓴다는 규칙이 있었다. 어떤 사람은 영어의 문장부호 규칙에서 그것이 따라왔다고 보는 사람도 있었다. 쓰는 사람 마음이지만 오픈소스 프로젝트에 참여하는 것을 고려한다면 참고할 수 있을 것이다.

    책을 읽으면서 파이썬 코드의 가독성이 정말 좋다는 것, 그리고 필요하다고 생각하는 라이브러리가 대부분 있다는 것을 느꼈다. 최근에 인기가 많은 Node.js도 라이브러리가 많이 구현돼있지만 데이터 과학쪽은 아직 파이썬의 환경이 더 잘 되있고, 초보자가 접근하기도 더 수월하다고 생각한다. 책이 얇고 다양한 주제에 대해 다루고 있기 때문에 심층적인 내용을 다룰 수 없는 것은 어쩔 수 없다. 하지만 흥미를 일으키기에 충분한 분량의 내용이 각 챕터별로 들어있다고 생각한다. 리뷰를 읽으실 초보자분들이 이 책을 통해 즐거운 코딩경험을 하시길 기대한다.

    이 책은 파이썬으로 웹 크롤링을 시작하기에 안성맞춤입니다.

     

    이 책을 보기 전에 웹에서 데이터를 긁어모으는 '웹 크롤링'이라는 단어는 들어서 알고 있었고, 

    파이썬에서는 BeautifulSoup 같은 여러 라이브러리들을 이용하면 쉽게 웹 크롤링을 할 수 있다는 것도 들어서 알고 있었지만,

    정작 웹 크롤링이라는 것을 시작하려고 보면 막막함만 가득했습니다. 

     

    인터넷 블로그 등의 튜토리얼을 따라 해보아도 결과가 제대로 나오지 않아서

    웹 크롤링은 둘째치고라도 파이썬이라는 언어 자체에 대한 벽까지 느껴졌습니다.

    그런데 이 책은 파이썬과 BeautifulSoup 같은 라이브러리를 설치하고 virtualenv로 가상 환경 구성하는 방법부터 시작해서 

    파이썬의 여러 웹 크롤링 라이브러리들을 사용해서 크롤링을 하는 방법 절차를 군더더기없이 설명하고 있어서 따라하기 쉬웠습니다.

     

    그리고 웹 크롤링을 할 때 어떤 절차를 따라 해야 하는지, 성가신 문제들을 해결하는 노하우 같은 것들을 이 책에서 찾을 수 있었습니다.

    웹 크롤링을 하는 과정에서 정규표현식을 사용하면 좋다고 설명한 부분이 있었는데, 

    그 부분의 설명을 통해서 정규표현식에 대해서도 간략히 살펴볼 수 있었고 

    실습을 통해 정규표현식 패턴을 파이썬에서 어떻게 활용하는지 파악할 수 있었습니다.

    한마디로 책 안에 필요하고 도움이 되는 내용만 알차게 잘 구성되어 있습니다.

     

    조금 아쉬웠던 점은 파이썬 개발 환경 구성에 대해서 부록 등에 넣었으면 좋았을 것이라는 점입니다.

    파이썬2와 파이썬3이 다르고, BeautifulSoup도 이 책에서는 파이썬3을 기준으로 설명하고 있어서 

    똑같은 코드를 쳐도 안 되는 경우가 많았습니다.

    pip나 virtualenv 같은 경우 실수로 파이썬2에 설치된 패키지로 실습을 따라하다가 오류가 날 가능성이 많이 있는 것 같습니다.

    부록에 이런 내용을 설명하면 좋을 것 같은 생각이 듭니다.

     

    이 책을 읽으면서 파이썬으로 웹에서 데이터를 어떤 식으로 모으는지 알 수 있었고

    소장 가치가 큰 책이라고 생각합니다.

    파이썬으로 웹 크롤러를 만들고 싶은 분들에게 꼭 추천드립니다.

     

     

     

    웹 크롤링이 무엇인지 궁금하게 만든 도서!

     

    나는 보통 도서를 처음 접하게 되면 가장 먼저 뒷표지를 본다.

    뒷표지를 보면 이 도서의 핵심 요약이 표현되어 있는 경우가 대부분이기 때문이다.

     

    "파이썬으로 웹 크롤러 만들기(Web Scraping with Python)"도서를 서점에 가서 집어 들고 뒷표지를 보았다.

    뒷표지의 내용을 보고 바로 이 도서를 선택하게 되었다. 

    <복잡 다양한 웹에서 우아하게 데이터 수집하기> 참으로 멋진 표현이다.

     

    나에게 웹 크롤링에 대한 관심을 불러일으킨 책으로써 무언가 이 도서를 통하여 할 수 있을 것 만 같았다.

     

    이 도서를 통하여 얻을 수 있었던 내용들은 아래와 같다.

     

    1. 웹 크롤링이 무엇이며 왜 써야 하는지를 알 수 있었다.

    2. 크롤링의 기본 동작 과정을 알 수 있었다.

    3. 기초부터 심화까지 조금씩 난이도를 높혀가면서 크롤링을 해볼 수 있었다.

     

    챕터5 데이터 저장 부분중 파일저장 부분은 향후에도 많이 사용할 수 있는 부분으로 생각되었다.

    다만 본문에서도 경고하고 있듯이 바이러스나 멀웨어등이 포함된 파일들이 존재할 수 있으니 각별히 조심하라고 가이드하고 있다.

    또한 파이썬으로 메일 전송할 수 있다는 부분도 흥미로웠다. 조금만 응용하면 뭔가 멋진 툴이 나올 것 같은 예감이 든다.

     

    챕터6의 문서 읽기 부분은 꼭 웹페이지의 내용뿐만 아니라 PDF나 DOCX같은 파일들에서도 파이썬을 이용하여 내용을 추출할 수 있음을 보여준다.

    물론 추가적인 파이썬 라이브러리를 설치하여 사용해야 하지만 정말 많은 일들을 할 수 있음을 알 수 있다.

     

    그밖에 "고급 스크레이핑"파트에 가면 더 심화된 예제들을 볼 수 있다.

    이 책을 읽고난 후 느낀점이라 하면 정말 다양한 라이브러리들이 존재하여  파이썬으로 못하는 것을 없겠다? 라는 점이다. 

     

    다시금 <복잡 다양한 웹에서 우아하게 데이터 수집하기> 이 말이 떠올랐다.

    수 많은 라이브러리들을 사용하여 우아하게 데이터 수집하는 그날까지 아직 봐야할게 많은 것 같다!!

     

    파이썬으로 웹크롤링에 입문하고 싶으신 분들에게 매우 친절한 책입니다.

     

    친절한 예제위주로 쓰여져 있으며 따라치고 글을 읽다보면 어느정도 기본수준의 크롤링은 하고 있는 스스로를 발견할수 있을 것입니다. 회사일로 특정 홈페이지 과금페이지를 매일 일정시간마다 자동으로 스크린샷 찍는 기능을 응용하여 만들었는데 책에서 배운내용과 스크린샷 찍는 기능 관련 약간의 구글링과 함께 손쉽게 만들수 있었습니다. 자바스크립트 크롤링이나 기타 크롤링에 필요한 지식들을 책에서 가볍게 다루어 주기때문에 부담없이 읽을수 있습니다. 단순 크롤링부터 CAPTCHA PDF WORD 파일을 읽는 방법까지 여기서 배운내용으로 많은 응용이 가능하리라 생각합니다.

     

    마지막에 저작권에 대해 다루어주는데 저작권이 점점 중요해지는 시기인 만큼 기술적 내용이 아니라고 넘기지 말고 한번씩 읽기를 권장합니다.

     

    결론:

    크롤링에 대해 시작해보고 싶으신분들에게 묻지도 않고 따지지도 않고 추천하겠습니다^^

    이미 위에 언급한 내용을 해본분들에게는 더 상위의 토픽을 가진책을 읽는것을 추천하겠습니다.

     

     

     

    데이터를 가공하면 정보가 된다.

     

    이 책은 정보가 만들어지기 위해  선 수행되어야할 작업인,

    인터넷에 뿌려져있는 데이터를 끌어모으는 작업을 수행하는 '크롤러'를

    파이썬언어로 만들기위한 가이드 역할을 한다.

     

    뷰티풀스프를 응용하여 간단하게 데이터를 긁어오는 실습과 더불어

    긁어진 데이터를 json, csv등의 범용성 높은 포맷으로 변환하기위한 라이브러리가 소개된다.

     

    위키피디아같은 공개된 페이지부터, 로그인이 필요하거나 캡챠테스트를 뚫어야만 볼 수 있는 페이지에 올라와있는

    데이터를 긁어모으기 위한 라이브러리도 소개해준다.(권한에 따른 수집방법 변경)


    긁어모아진 데이터를 말끔하게 정리하는 라이브러리도 소개된다.

     

    사실 구글링을 조금만 해보면 구현할 때 필요한 라이브러리나 API를 금방 찾을 수 있다.

     

    그런데도 불구하고 이런 책이 존재하는 이유는 많은 라이브러리가 영어로 소개되어있기 때문에

    한글 레퍼런스로 활용될 수 있다는 이점이 아닐까?

     

    책에서 아쉬웠던 점은 한글 형태소 분석이 아닌 영어 형태소분석 예제를 그대로 사용한 점 하나가 있다.

    일어 번역서의 경우 대다수의 번역서가 일어 형태소 분석 예제 대신에 (역자의 노력이 들어가긴 하지만)

    한글 형태소 분석 예제로 바꿔서 출판하기 때문에 이부분이 아쉬움으로 남는다.

     

    시각화와 같은 정보화 과정이 더 들어갔다면 좀 더 완성도 있는 프로젝트가 되었겠다는 아쉬움 역시 남는다.

     

     

     

    이 도서는 파이썬을 기초 수준으로 알고 있는 사람에게 웹 크롤러(Web Crawler)를 만드는 방법을 단계별로 친절하게 알려준다.

    1. 왜 읽어야 하나요?

    수년 전부터 오픈 웹, 오픈 API 등의 용어가 범람하고 있다. 우리가 알고 있는 각종 포털 및 SNS 사이트부터 공공기관까지 대부분의 웹 서비스 업체는 자신들이 생산하는 데이터를 활용할 수 있는 방법을 제공한다.

    참고: 대한민국 정부는 공공기관의 데이터를 민간에게 공개하는 것을 골자로 하는 정부 3.0 이라는 정책하에 공공데이터포털(www.data.go.kr)을 운영하고 있음

    그러나 대부분의 경우 오픈 API는 사용이 제한적이거나 우리가 원하는 기능을 제공하지 않는 경우가 많아 해당 사이트에서 제공하는 데이터를 말랑말랑하게 다루기에는 많은 어려움이 있다. 책에서는 이러한 이유를 아래와 같이 소개하고 있다.

    • 사이트에서 API를 제공하지 않거나 제공할 능력이 없음
    • 사이트에서 제공하는 API사용에 제한이 있거나 제공하는 데이터 타입이 원하는 형식이 아닐 수 있음

    만약 정보의 바다라고 하는 인터넷에서 본인 혹은 기업이 원하는 데이터를 자동으로 수집하고 가공하여 가치를 창조하는 일을 하고 싶다면 이 책은 큰 도움이 될 것이다.

    2. 이 책의 장∙단점은 무엇인가요?

    우선 이 책은 매우 친절합니다. 최근에 발간된 일부 컴퓨터 서적의 경우 책에서 나오는 각종 실습을 따라하는 데 필요한 환경설정을 다루지 않는 경우가 있었습니다. 그러나 이 책은 파이썬부터 BeautifulSoup 이라는 웹 문서 Parser 설치까지 안내를 합니다. 그리고 부록의 마지막 장에서는 웹 스크래이핑(=웹 크롤러)의 합법성과 윤리를 통해 혹시라도 발생할 수 있는 각종 법적 분쟁에 휘말리지 않도록 안내를 합니다. 그러나 무엇보다도  이 책의 가장 큰 장점은 단계별로 내용을 풀어가는 친절한 설명입니다. 또한, 심화내용을 배우기 원하는 독자를 위해 필요한 경우 레퍼런스를 제공합니다.

    단점은 없습니다. 신경쓰이는 번역이나 오타도 발견하지 못했습니다. 최근에 읽었던 전문서적 중 가장 훌륭한 책이었습니다.

    3. 총평

    이 책은 검색 엔진을 이루는 구성요소 중 핵심 중 하나인 웹 크롤러(Web Crawler)를 만드는 방법을 매우 친절하게 소개합니다. 만약 웹에서 생산되는 다양한 데이터를 수집 및 가공하여 가치를 창조하는 어떤 서비스를 만들고 싶다면 이 책은 훌륭한 시작점이 될 수 있습니다. 웹 크롤러에 관심이 있는 분이라면 후회없는 선택이 될 수 있습니다.

     

    전 세계가 네트워크를 통해 하나로 연결된 시대이다. 우리 삶도 스마트폰을 통해 온라인과 오프라인을 분명히 나눌 수 없을 정도로 깊이 엮여 있다. 그래서 사람들의 생활과 관심사가 그대로 드러나는 웹은 가공되지 않은 수많은 정보의 보고이다.

     

    그런데 이 웹에서 특정 목적에 적합한 정보를 대규모로 수집하는 것은 사람의 손으로는 하기 힘든 일이다. 그래서 웹에서 정보를 수집해주는 기능을 전문적으로 하는 프로그램이 존재한다. 이 프로그램은 흔히 봇이라는 이름으로도 불리는데, 이 봇을 만들어 데이터를 모아서 DB에 저장하는 일이 바로 웹 스크레이핑이다. 더 정확히는, 웹 스크레이핑은 특정 프로그램이 웹 서버에 쿼리를 보내서 HTML, XML, 이미지 등 고유 형태의 응답을 받아서 이를 파싱하고 저장해서 정보를 추출하는 작업을 의미한다.

     

    웹이 정보의 보고인 만큼, 그 정보를 수집하는 것도 다양한 분야의 기술이 필요하다. 그래서 웹 스크레이핑은 데이터베이스, 웹 서버, HTTP, HTML, XML, 인터넷 보안, 이미지 처리, 데이터 과학 등 다양한 주제를 설명해야 한다. 이 책의 장점은 필요한 주제마다 필요한 기술들을 아주 기초부터 핵심만 소개해주는 설명에 있다. 파이썬 초보자도 기초 문법만 떼고 온다면 진행이 그리 어렵지 않을만큼 짧고 간결하게 구성되어 부담도 크지 않다. 그래서 경력이 쌓인 개발자뿐만 아니라, 파이썬 프로그래밍 입문서를 막 마친 대학생들도 즐겁게 시도해볼 수 있는 책이다. 무엇보다도 IT도서답지 않은 얇은 두께를 자랑하며 책장도 휙휙 잘 넘어간다. 게다가 문체가 상당히 따뜻한 느낌이다. 이런 부드러운 문장이 원저자의 공인지 아니면 역자의 공인지 알 수는 없지만, 책을 쉽게 느껴지게 하는 데 일조한다.

     

    빅데이터, 기계학습, 딥러닝, 인공 신경망 등이 대세 키워드인 요즈음, 웹 스크레이핑은 개발자들 뿐만 아니라, 일반인들도 매우 흥미로워하는 분야이다. 마침 파이썬은 초보자가 입문하기 쉬운 언어이므로, 이 책으로 입문하는 웹 스크레이핑은 자신의 비즈니스를 더 효과적으로 만들고 생산성을 향상하고 싶은 사람은 누구나 참여해볼 만한 주제이다.

     

    사실 이 리뷰를 작성하고 있을 때 건너편에 앉아있던 개발자가 책 제목을 흘끗 보고는 '이게 책 한 권을 낼만큼의 주제가 돼요?' 라고 물었다. 이 책을 덮은 지금, 자신 있게 '그렇다. 꼭 한 번 읽어보실 만 하다.'라고 답할 수 있을 것 같다.

     

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

     

     - 초간단 나만의 웹 크롤러로 

     

     원하는 데이터를 가져오는 방법

     

     

    웹 크롤러를 만든다는 제목의 이 책은 말 그대로 

     

    파이썬으로 웹 크롤러를 제작하는 방법을 알려주고 있습니다.

     

    웹 크롤러가 뭔지도 모르는 사람이지만, 프로그래밍에 관심있는 

     

    사람이나, 웹 크롤러가 뭔지는 들어봤지만, 실제로 만들어 본적은

     

    없는 사람들에게 크롤러에 대한 구조나 정보등을 알 수 있는 

     

    입문서로서 좋은 역할을 할 수 있는 책이라는 것이 

     

    제가 읽은 느낌입니다. 

     

     

    처음 받아봤을때의 느낌은 상당히 책이 얇다는 점이었습니다.

     

    300쪽도 되지 않는 분량에 크기도 그다지 큰 편이 아니어서인지

     

    분량의 부담은 크지 않겠다는 생각이 들었습니다. 

     

    다만, 혹시 내용이 너무 어렵지 않을까라는 생각이 들었는데요

     

    이전에 봤던 기술서적들의 대부분은 분량이 적으면

     

    그 내용이 어렵거나, 너무 간략하게 서술되어 있는 경우를 

     

    많이 봐왔기 때문에, 약간의 걱정도 없지 않았습니다. 

     

     

    그러나 이 책은 적은 분량으로서의 장점을 최대한 살리고 있다는 

     

    생각이 듭니다. 

     

    초보자 혹은 크롤링의 입문자 입장에서 볼 때, 

     

    필요한 사항들을 알 수 있는

     

    내용들이 적절하게 나와있어서, 

     

    너무 어렵거나 복잡한 군더더기 없다는 느낌을 받았습니다.

     

     

    물론 대개의 입문서나 개론서가 그러하듯 

     

    이 책만으로 크롤링의 모든 것, 혹은 상업적인 수준의 어떤 것을

     

    기대하는 것은 좀 이른감이 있습니다. 이에 대한 내용은 책에도 

     

    나와있는데요. 크롤링 작업이나 프로그램의 구조나 동작 등에 

     

    대한 큰 흐름과 그에 대한 고려 사항들을 확인해 보고 

     

    짧고 명확한 파이썬 코드들을 통해 실습해 볼 수 있다는 

     

    점에서 맘에 들었습니다. 

     

     

    개인적으로 부록에 나와있던 

     

    법률적인 사항와 윤리적인 사항에 

     

    대한 내용들도 좋았습니다. 관심은 있지만, 

     

    포털 사이트의 묻고 답하기가 아니라면, 

     

    어딘가에 물어보기도 애미했던 것들이었는데요

     

     

    크롤링이라는 작업의 입문서로서 저자의 배려를 느낄 수 

     

    있었던 부분이라는 생각이 듭니다. 

     

     

    웹 크롤링에 대한 궁금증을 가진 분들이나

     

    파이썬의 실용적인 사용법이 궁금한 분들에게 

     

    도움이 되리라 생각합니다. 

     

    이 책은 크롤링을 체계적으로 쉽게 알려줍니다. 크롤링 입문서로 아주 괜찮은 책입니다.

     

    이 책의 틀을 간단히 살펴보자면

    1. 웹페이지 주소에서 얻을 수 있는 정보들이 이러한 것들이 있다. (간략하게 설명)

    2. 이런건 어떻게 파이썬으로 긁어올 수 있을까?

    3. 주의할 점은?

    이러한 틀로 파이썬 크롤링을 보여주고 있습니다.

     

    1번 단계에서 알려주는 내용은 각 챕터별로 정해져 있는 제목들 입니다.

    크롤링을 하고자 하는 페이지에서 필요한 부분이 무엇인지 목표를 정하는 부분입니다.

    책에서 복잡하게 설명 안합니다. 부담없이 간단하게 설명하고 있어요. 

    실전에 사용해야 하시는 분들에게는 부족한 내용일 수도 있는데 입문자들에게는 충분한 내용이 아닐까 생각이 듭니다.

     

    2번 단계에서는 1번 단계에서 목표로 한 부분들을 파이썬 코드를 이용해 크롤링 하는 방법을 알려줍니다.

    이 방법이 너무 간단 명료합니다. 너무나 심플하기 때문에 이 코드를 바탕으로 공부해 가기에는 최적의 코드가 아닌가 생각이 듭니다.

     

    이러한 코드의 부족한 부분과 주의할 점에 대해서는 필자가 책 중간중간에 부연 설명을 하고 있습니다. 

    부연설명을 통해 이 코드에서 "주의해야 할 점" 혹은 "참고사항" 등의 말해주고 공부 방향을 알려주고 있습니다.

    이 부연설명 부분을 좀 더 공부해보면 좋은 결과가 있지 않을까 생각이 듭니다.

     

    이 책은 크롤링의 모든것을 알려준다기 보다는 

    크롤링의 공부 방향을 알려준다고 생각하고 참고하면 좋을 것 같습니다. 

    분명히 실전에 바로 사용하기에는 부족한 면이 있고 책에서도 언급을 하고 있습니다.

    크롤링을 해보고 싶은데 입문서를 찾고있는 분에게 강력히 추천합니다.

    책이 얇고 따라해 보기에 부담이 없습니다.

     

    감사합니다.

    이전부터 파이썬으로 크롤링 작업을 하긴 해왔었다.

    하지만 그러면서도 아쉬움들은 항상 있었는데, 이 책을 읽으며 이러한 아쉬움들을 

    해결할 실마리와 정보를 많이 얻었다.

     

    크롤링이 항상 필요한 건 아니었어서 수집을 하고 엑셀파일로 저장을 해왔었다.

    하지만 DB에 계속 저장해두고 한번 접속한 웹사이트는 건너뛴다든가, 중복된 내용은

    긁지 않는다든가 하는 테크닉을 물론 다룬다.

     

    깊이 우선 탐색이나, 너비 우선 탐색 알고리즘을 이용한 크롤링 테크닉도 소개하면서

    구글의 스파이더 같은 크롤링봇을 제작할 수 있는 정보를 소개한다.

     

    자연어 처리와 이미지 처리를 다루고 브라우저 제어 및 크롤링 윤리 들도 다루는 면에서

    아주 실용적이고 효율적인 정보를 얻어 매우매우 기쁘다.

     

    분량은 콤팩트하지만 다루는 내용은 매우 유용하며 핵심적이라 

    파이썬으로 웹크롤링을 하고자 하는 사람들에겐

    "아무것도 묻지도 않고 따지지 않고 이 책을 봐." 라고 할겁니다.

     

     

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

     

    와, 이책은 정말 술술 읽힌다. 신기하다

     

     

    요새 내가 관심있던 것이 크롤링 하여 정보를 쌓는것과

    그 정보들을 이용하여 챗봇이나, 정보 푸시 또는 서비스 상에 유저에게 여러 정보를 큐레이팅하는 것이었다.

     

    요즘 하고있는 프로젝트에 대한 내용이어서 인지

    책의 구성이 알차게 쓰여져 있어서 인지 몰라도 공감도 잘 되고 술술 읽혔다.

     

    크롤링이 어떠한 것인지는 물론 어떠한 원리로 크롤링을 하는 것인지 역시 잘 설명하고 있는데,  여기서는 BeautifulSoap을 가지고 크롤링을 진행한다. (그 유명한 녀석)

     

    또한 단순히 해당 모듈의 사용법을 설명하는 것이 아니라

    크롤링 후에 필요한 정규식으로 처리 라든가, 가져온 Document의 탐색, 탐색한 문서 속 정보를 가공, 그리고 저장. 게다가 저장 된 내용을 양질의 데이터로 만들 수 있는  n-gram과 같은 자연어 처리 그리고 이미지에서 텍스트를 추출하는 OCR까지...

     

    얇은 책에 담긴 내용들이 모두 알차서 놀랐다.

     

    물론 책 자체가 얇은 만큼 각 부분 부분들에 대한 심화과정과 같은 깊은 설명이나 예제가 부족한 부분도 있었다.

     

    그러나 이 책은 크롤링의 전체적인 플로우와 기본 설정 및 사용법, 그리고 간단한 실습까지 완벽했던 것 같다.

    이것들을 가지고 어떻게 응용하느냐는 독자의 몫이고 그 결정에 대한 방향을 위해 필요한 심화과정들 역시 독자의 몫인 것 같다.

     

    이 책을 읽으면서 그동안 만들던 것의 질이 더 좋아졌고,

    그 프로젝트 이외에도 여러 아이디어가 생각나서 아주 기분이 좋았다.

     

    나와같이 이쪽 분야에 대해 관심있는 사람들이 있다면 주저없이 꼭 읽어보라고 권하고 싶다.

     

     

     

    크롤링에 관심이 있는 개발자

    크롤링이 무엇인지 잘 모르지만 알아보고 싶은 개발자

     

    권하기 힘든 대상

    이미 위의 내용들을 어느정도 해본 개발자

     

    솔직히 유사한 책들(크롤링만은 다루지 않고 한 챕터로 존재하는 경우도 포함해서)이 너무 많아서 크게 기대는 하지 않았습니다. 그런데 평점 5개는 잘 주지 않는데 (정확히는 4.7?) 기대보다 책이 너무 좋아서 평점을 높게 주게되었습니다. 

    책이 얇아서 처음엔 beautifulSoup 사용법 위주로 설명하는 것으로 생각했는데 해당 부분은 생각보다 길지 않고 실전에 적용하는 사례를 많이 보여줬습니다. 그리고 단순히 소프트웨어 사용법을 알려주는 것이 아니라 은근 꿀팁들(크롤러가 아닌 사람인척하기, 윤리 법적인 문제 등 경험자만 알 수 있는 내용들)을 공유하고 있어서 많은 도움이 되었습니다.

    보통 api를 이용하거나 정식으로 라이센스 계약을 하고 끌어오는 케이스가 많아서 크롤링에 대한 경험은 많지 않은데 이번 기회에 의외로 많은것을 배우게 되었습니다. 대신 책이 얇다 보니 유명한 다른 오픈소스들이나(뉴스 크롤링같은) 디테일한 내용이 아주 많지는 않습니다. 그래도 순서대로 따라하면 전체 프로세스를 완벽히 커버하고 있기 때문에 괜찮은 책으로 보입니다.

    난이도는 약간 애매한데 아주 초급자라고 하기에는 약간 어려울 수도 있고 고급사용자가 보기엔 책의 두께 한계상 애매하긴 합니다. 그래서 어느정도 프로그래밍이나 관련 내용을 학습하고 이 책을 보면 더 도움이 될 수도 있습니다. (초보자도 쉽게 따라할 수 있게 만들었지만 제가 처음 경험해본다면 은근히 어려움이 있을듯 합니다.) 그리고 폼과 로그인 뚫기, 이미지 처리 등 실무를 경험해보지 않은 사람들이 보았을때 좋은 내용들이 많이 있습니다.

    아직 하나하나 따라해보지는 않았는데 한번 이 책을 전체 실습해보는 시간을 가져봐야 겠습니다.

    벌써 2016년 마지막 미션이다.

     

    이건 의무는 아니었고 신청자만 원해서 하는 것이었지만, 주저 없이 신청하게 되었다.

     

    아마 나 말고도 다들 이책을 많이 하는 듯 하다.

     

    파이썬으로 웹 크롤러 만들기
    국내도서
    저자 : 라이언 미첼(Ryan Mitchell) / 한선용역
    출판 : 한빛미디어 2016.12.01
    상세보기

     

    워낙 주제가 흥미롭다 보니 책 받은 인증이 상당수가 이 책이었다.

     

    아마 웹크롤링이라는 주제 자체에 흥미를 가진 분들이 많을 것이라 생각이 된다.

     

    책을 처음 받고서 의외라고 생각했던 부분은, 우선 생각했던것보다 두께가 얇았다는 점이다.

     

    실제 페이지 수가 인덱스를 포함해도 300페이지가 안되기 때문에 편한 마음으로 볼수 있었다.

     

    크롤링(Crawling) 혹은 스크래핑(scraping) 이라는 것은 웹 페이지에 데이터를 추출하는 행위를 말한다.

     

    https://namu.wiki/w/%ED%81%AC%EB%A1%A4%EB%A7%81

     

    실제 파이썬에서 크롤링 하는 방법은

     

    scrapy 프레임워크를 사용하거나 beautifulsoup 라이브러리를 사용하는 방법이 있는데,

     

    이책에서는 두번쨰 방법인 beautifulsoup 를 사용해서 설명하고 있다.

     

     

    우선 scrapy를 잠깐 언급을 하자면, 파서를 지원하는 것이 특징인 오픈소스 프레임워크이다.

     

    공식 웹사이트 : https://scrapy.org/

     

    * 소스 https://github.com/scrapy/scrapy

    * 문서 http://doc.scrapy.org/en/latest/

     

    예전 학교 다닐 시절에 데이터 크롤링이 필요해서 써봤던 wget-curl 도 있다.

    http://opensourcepack.blogspot.kr/p/wget-and-curl.html

     

    (아직도 있어서 다행...^^;;)

     

    그리고 책에서 나온데로 beautifulsoup은 파이썬 기본 라이브러리가 아니므로 별도로 설치를 해주어야한다.

     

    https://www.crummy.com/software/BeautifulSoup/

     

    책에서는 pip 로 설치하는 방법이 있으니 따라하면 쉽게 설치할 수 있다.

     

    이 책은 초보자들도 쉽게 간단한 크롤러를 만들 수 있도록 잘 설명되어있다.

     

    당연한 DB에 대한 부분이나, 로그인, 폼, CAPTCHA 등에 부분도 잘 나와있다.

     

    그리고 내가 생각하기에 가장 중요하다는 저작권에 대한 부분도 일부 다뤄주고 있어서 그부분이 아주 좋았다.

     

    실제 인터넷에 엄청나게 많은 데이터들이 있지만, 뉴스 스크레이핑 등은 

     

    각 뉴스 언론사 마다의 저작권이므로 개별로 확인해야할 필요가 있는데,

     

    그런 부분도 놓치지 않고 다뤄준 점에서 높은 점수를 주고 싶다.

    원서에서는 스크래이핑(scraping)이라는 표현을 쓰고 있지만, 번역자 분께서는 아무래도 한국에서 더 널리 쓰이고 있는 크롤러(crawler)라는 단어를 채택하신 것 같다. 결국 핵심은 웹 페이지를 탐색하여 가져와서 자동으로 데이터를 추출해 내는 행위를 뜻한다. 사실 예전에 웹 크롤러를 작성해본 적이 있기 때문에 이 책의 내용이 별로 대단한건 없을거라고 생각했는데 큰 오산이었다. 내가 사용했던 방법은 정말로 초보자 수준이었고, 함수들을 제대로 몰라서 노가다를 뛴 측면이 많았다. 이 책에서는 다양한 API와 정규표현식을 사용하여 보다 Elegance한 방법을 제시하고 있다.

     

    저자는 단순히 프로그램 개발만 잘하는 것이 아니라 데이터베이스 관리, 자연어 처리, 성능 튜닝, 보안 등등 다양한 관점을 겸비한 전문가로 보인다. 특히 온라인의 폼(Form)과 로그인 인증을 우회하거나 CAPTCHA를 뚫는 것은 정보보안적 관점에서도 중요한 위협(또는 방어)가 될 수 있기 때문에 저자는 이러한 취약점에 대해서도 상세히 설명하고 있다. 이는 자연스럽게 법적인 문제를 야기할수도 있는데, 사실 크롤링 행위 자체에 대해서는 불법이 아니라고 하지만 이것이 과하여 상대방의 웹사이트를 다운시킬 정도가 된다면 이것은 윤리적으로 모호한 상황이 아니다, 그것은 명백히 잘못된 일이므로 항상 주의를 기울여야 한다. 더불어서, 상대의 컴퓨터 뿐만 아니라 나의 컴퓨터도 지키기 위해서는 성능 이슈를 잘 관리하여야 한다고 지적한다. 이를 위해서는 적절한 쓰레드 처리로 부하를 분산하는 등의 방법이 요구된다(270page참조). unittest, 셀레니움 등을 사용하여 테스팅을 해보는 것도 좋다.

     

    결론적으로 이 책을 요약하자면, 인터넷이라는 거대한 밀림 속에서, 내가 원하는 자료를 찾기 위해 온갖 이미지를 다운로드하고 그 중 글자를 추출하고 가공하여 데이터베이스에 저장하는 등 일련의 과정을 거쳐서 다양한 문제들을 해결할 수있다는 것을 말한다. 물론 숙련을 위해서는 많은 연습과 시간이 필요할 것이다. 그렇지만 이 책 덕분에 참 다양한 인사이트를 얻었다. 내가 관심있는 주제를 하나 선정하여 크롤러 프로젝트를 한번 수행해봐야 겠다.

    파이썬으로 웹 크롤러 만들기 (Web Scraping with Python)

    저자 : 라이언 미첼
    역자 : 한선용
    출판사 : 한빛미디어

    책정보 : http://www.hanbit.co.kr/media/books/book_view.html?p_code=B7159663510&tid=misprint


    개요

    대상 독자

    파이썬 초급자 이면서 웹 크롤링에 관심이 있는 사람
    굳이 파이썬을 모르는 상태라도, 웹 크롤링의 전반적인 내용을 알 수 있을 듯

    출판사 정보에는 책의 난이도가 "초급" 이라고 되어있지만
    주관적인 생각으로는 좀 애매하기도 함
    (뭐 그건 내가 초심자라서 그렇다고 해두자)


    특징

    책장을 넘기기 전

    이 책은 파이썬을 이용해 크롤러를 만들어서 데이터를 가져올 수 있도록 하는 입문 연습서 라고 생각했었다.
    처음 나오는 "옮긴이의 말"에도 나와 비슷한 생각을 했다고 기술 되어 있다.

    얇은 책 이지만 다루는 범위가 생각보다 상당히 많았다.

    • 문서 읽기
    • 자연어 통계 분석
    • captcha ;;;;;
    • 그리고 법률 관련

    참... 케븐베이컨의 여섯다리를 여기서 보게 될 줄도 몰랐다!!!


    파이썬 측면의 특징

    • 파이썬 가상화 구축
      (강제하지 않는다는 부연설명이 있긴 하다.)
      프로그램을 만드는 목적을 분명히 함으로써
      운영 환경의 이전 또는 배포시에도 간편하고 명확하기 때문에 사용을 추천하는 내용이다.
    • 예외처리(except)
      나와 같은 초심자가 코드만 보고 만들면 분명히 직명하게 될법한 상황중 하나를 잘 설명해 주고 있다.

    본 도서는 파이썬 입문서가 아님에도, 파이썬을 처음 접하는 사람에게 도움이 될만한(뭐.. 마음에 안올 수 도 있지만.. ;;;)내용을 첫장&초반 부터 언급하고 있다.

    개인적으로 추천하는 부분 이다.

    추가로, 특정 코드는 상세 설명이 되어 있는 부분도 있다.


    웹스크래퍼의 활용에 대한 고찰

    웹스크래퍼가

    • 웹사이트의 프런트앤드 부분을 테스트 할 경우에도 사용 할 수 있다는것
    • 체크리스트를 만들어 자동화 시킬 수 있다는 부분

    은 아주 유용한 활용 이라 생각된다.

    책을 읽기 전에도, 중반까지 읽으면서도 웹스크래퍼를 만들어서
    뭔가를 보여주는 것에만 사용하면 되겠거니 했던
    본인의 한정된 센스를 되돌아봄... ;


    마무리

    • 파이썬을 이용한 기본적인 스크래핑
    • 다양한 모듈에 대한 소개
    • 스크래핑에 대한 방법론 및 활용
    • 법률상의 참고사항 (물론 보증이 아니라 참고용으로)

    에 대한 설명은 나름 유용하다.

    특히 본인이 관심있던(정확히는 책의 앞부분 정도면 됐지만) 부분이 마침 설명이 되어있어 반가운 책이었다.

    책이 얇은 만큼 각 모듈의 심도있는 활용까지 소개되어 있지는 않지만
    입문서 성격으로 이정도면 충분하다 싶다.

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

    배송료 안내

    • 20,000원 이상 구매시 도서 배송 무료
    • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

    무료배송 상품을 포함하여 주문하신 경우에는 구매금액에 관계없이 무료로 배송해 드립니다.

    닫기

    리뷰쓰기

    닫기
    * 도서명 :
    파이썬으로 웹 크롤러 만들기
    * 제목 :
    * 별점평가
    * 내용 :

    * 리뷰 작성시 유의사항

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

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

    오탈자 등록

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

    도서 인증

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

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

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

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

    닫기

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

    자료실