jjary***
2025-03-30

"한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 협찬 받아 작성된 서평입니다."
요즘은 chatGPT에게 데이터를 먹여 학습시킨 후 사용하기 위해 데이터 수집을 하는 일이 많아졌다. 공공데이터포털과 같이 정제되고 정리되어 있는 API로 데이터를 깔끔하게 수집하면 참 좋지만, API가 없는 경우도 많기에 직접 데이터를 수집해야 하는 일이 빈번하게 있다. 이런 면에서 웹 스크레이핑과 웹 크롤링을 배워보고 싶었는데, <파이썬으로 웹 크롤러 만들기>라는 책을 통해 이번 기회에 제대로 배워볼 수 있을 것이라 기대한다.
저자가 말하길 이 책은 웹 스크레이핑을 소개하는 것에 그치지 않고, 오늘날 웹에 존재하는 거의 모든 종류의 데이터를 수집, 변형, 사용할 수 있는 상세한 가이드가 될 수 있도록 구성했다고 한다. 이 책은 기본적인 파이썬 지식은 알고 있어야 따라올 수 있기 때문에, 기초적인 파이썬 숙지가 아직 어려운 독자들은 파이썬 기본서를 읽어보고 나서 이 책을 읽는 것을 추천드린다. 읽어본 바로는 아래 보여줄 책의 일부처럼 예시 코드가 상세히 기재되어 있고, 그에 따른 설명도 있어서 기초 Python과 HTML의 기초 지식정도만 가지고 있으면 엄청 버겁다고 생각이 들진 않을듯 하다.
한빛미디어 <혼자 공부하는 데이터분석>에서 웹 스크랩핑 사용하기라는 목차로 웹 스크레핑을 한번 간단하게 해본적이 있었다. HTML에서 데이터를 추출하기 위해 Beautiful Soup라는 패키지를 사용했었다.
여기서도 동일하게 Beautiful Soup를 사용하고 있다. 이 패키지는 잘못된 HTML을 수정하여 쉽게 탐색할 수 있는 XML 형식의 파이썬 객채로 변환하기에 골치아픈 웹을 탐색할 때 유용하게 사용된다.
Beautiful Soup 객체에 find_all 함수를 사용해서 <span class='green'></span> 태그에 들어있는 텍스트만 선택해서 고유명사로 이루어진 파이썬 리스트를 추출할 수 있는데, 하단과 같이 find 함수가 어떤 매개변수를 어떻게 왜 사용하고 있는지 하나하나 세심하게 짚어주면서 설명이 되어있다.
책 구성은 이런식으로 예시코드와 코드에 대한 설명 그리고 출력 결과에 대한 설명까지 상세히 적혀있어 웹 스크레핑과 웹 크롤링의 기본서로써 손색이 없어보인다. 책의 1부에서는 웹 스크레이핑과 웹 크롤링에 대해 깊이 있게 설명하며 책에서 사용할 라이브러리에 중점을 두며 설명하고, 2부에서는 웹 스크레이퍼를 만들때 유용한 추가 주제를 다룬다. 문서 읽기나 지저분한 데이터 다루기, 자연어 읽고 쓰기, 폼과 로그인 뚫기, 자바스크립트 스크레이핑, API를 통한 크롤링, 이미지 처리와 텍스트 인식, 병렬 웹 스크레이핑, 웹 스크레이핑 프록시처럼 처음 들어보는 고급 스크레이핑 기술까지 책에 상세히 기술되어 있기에 스크레이핑에 대한 많은 지식을 습득할 수 있다.
발전하는 AI와 데이터분석 기술을 따라가려면 데이터 수집이 가장 기본적인데, 데이터 수집을 스스로 해보고 싶던 독자들에게 추천하고 싶은 책이다. 물론 저작권에 위배되지 않도록 주의하는거 잊지 말도록 하자.