icon***
2021-08-17

웹에 존재한다면 그것이 어떤 형태이든 데이터로 추출할 수 있다. 필요한 무기는 이 책과 파이썬뿐. BeautifulSoup, 셀레니움, 테서랙트 등 강력한 파이썬 라이브러리 사용법과 함께 API, 인증, 이미지 및 텍스트 인식, 로그인 처리 등 웹 크롤링의 기초부터 고급 기법까지 종합적으로 다루는 유일한 책. 실제 업무와 생활에 적용할 수 있는 예제가 가득하다. 2판은 예제를 추가 및 업데이트했고 모던 웹에서 거의 모든 종류의 데이터를 가져오는 방법을
오늘 리뷰할 책은 파이썬으로 웹크롤러 만들기 입니다.
이책을 신청한 이유는
최근 뉴스에서 공익근무자가 웹크롤러를 이용해서 우체국 등기우편을 자동으로 정리하는 프로그램을 만들어서 시간과 비용을 많이 단축시켰다는 뉴스가 흥미로웠던 부분이 있어서~
파이썬으로 웹크롤러를 간단하게 만들 수 있는지 궁금해서 신청을 해 보게 되었습니다.
| 웹크롤러란? |
웹크롤러는 스파이더 또는 검색엔진 봇이라고 하며 인터넷에서 콘텐츠를 다운로드하고 색인을 생성하는 것을 말합니다.
구글이 1994년 처음 시작될때 단 두명의 스탠퍼드 대학생뿐이었고 그들이 가진건 낡은 서버와 웹크롤러 뿐이었습니다.( 이 책의 67페이지 내용을 인용)
이 글에서 웹크롤러가 무엇인지 정확히 알 수 있는 글입니다.
그렇다면 우리가 웹크롤러를 이용해서 데이터를 수집하면 구글 같은 검색엔진을 만들 수 있나요?
" 작은 규모의 검색사이트는 운영할 수 있지만 구글과 같은 대용량 사이트를 운영하기 위해서는 데이터 관리 기법과 좀더 빠르게 검색을 할 수 있는 다양한 알고리즘 들을 고민하셔야 합니다~" 라는 것이 제 생각이네요.^^
그래도 천리길은 한걸음 부터라고 했습니다.
우리가 구글과 같은 검색 엔진을 만들려고 하면 첫 단추가 바로 웹크롤러 입니다.
일단 데이터를 수집하고 가공을 해야 고객들에게 맞춤 검색이 가능하도록 지원을 해 줄 수 있을것 같네요~
| 이 책의 구성은? |
Part I: 스크레이퍼 제작
- Beautifulsoup를 활용하여 HTML 을 가져오는 방법
- 크롤링을 시작하는 방법 : 분석하기 쉬운 위키백과를 가지고 크롤링을 하는 방법에 대해 설명을 하고 있다.
- 웹크롤링 모델 : 어떤 제품 데이터를 수집할때 우리가 수집하려고 하는 속성들에 대해 설계 방법부터 다양한 웹사이트 레이아웃 다루는 방법 등에 대해 설명을 하고 있다.
- 스크레이피 : 크롤러 개발에 최고의 프레임워크인 스프레이피(Scrapy)를 설치 하고 사용하는 방법에 대해 다루고 있다.
- 데이터 저장 : 미디어파일,URL,텍스트 등을 무료 DBMS MySql을 이용하여 저장하는 방법에 대해 다루고 있다.
Part II : 고급 스크레이핑
- 문서 읽기 : 인터넷은 주로 텍스트 기반의 문서로 이루어져 있다. 이러한 문서에 대한 인코딩 방법과 csv 파일,pdf 파일,docx 파일 등의 문서를 다루는 방법을 설명하고 있다.
- 지저분한 데이터 정리하기 : 문서를 가져오면 정형화되지 않은 데이터들이 있는 웹사이트들이 많은데 이렇게 정형화 되지 않은 데이터를 어떤 식으로 처리해야 하는지 등의 기법에 대해 설명을 하고 있다.
- 자연어 읽고 쓰기 : 데이터를 다루기 위해서는 특정한 단어, 수 와 같이 정확한 단어를 인식하는 것은 쉽지만 "귀여운 고양이" 라는 검색어가 입력 되었을때 이것을 고양이 라고 인식하기 쉽지 않은데 마르코프모델에 대해 설명을 하고 이러한 것을 다루는 자연어 툴킷을 활용해서 이러한 자연어 처리 방법에 대해서 설명을 하고 있다.
- 폼과 로그인 뚫기 : 로그인 해야 얻을 수 있는 정보에 접근하기 위해서는 로그인과 쿠키 등에 대해서 처리 해야 하는데 이러한 경우 어떻게 처리 하는지 등에 대해 다루고 있다.
| 이 책을 읽고~ |
실제로 웹 크롤링을 하다 보면 상대 서버의 부하때문에 잘못하면 상대 서버에서 IP차단을 당하는 경우도 발생할 수 있습니다.
이 책에서는 하나 하나 실습을 하면서 이것을 실무에 사용하는 경우에는 어떤 점을 조심해야 한다는 충고를 해 주고 있습니다.
실무에 바로 적용할 수 있는 코드는 아니지만 이 책에서는 실무에서 필요한 모든 내용을 담고 있습니다.
HTML 분석 부터 자신이 원하는 데이터 수집시 객체 모델 생성방법, 자연어 처리 방법, 로그인 하여 데이터 수집 방법까지 웹크롤링에서 필요한 기법들을 하나 하나 주옥같은 내용들이 기록되어 있습니다.
이 책을 통해서 개념을 익히고 주의 할 점들을 조심한다고 하면 구글 과 같은 검색 사이트를 구현해 볼 수 있을것 같네요.
웹크롤링에 대해 공부하고 싶은 학생들이나 IT업계 종사자 분들이라면 이 책을 선택하시면 후회 하지는 않을것 같네요.
일단 이 책은 Python의 기본 문법은 알고 있는 분들을 위해 쓰여져 있으며 이 책의 예제를 하나 하나 따라서 연습을 하다 보면 웹크롤링 방법과 데이터베이스 구성 방법등의 개념을 익히고 실무에 적용할 수 있는 책이라고 판단 됩니다.
"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."