aim***
2020-09-27

웹에 존재한다면 그것이 어떤 형태이든 데이터로 추출할 수 있다. 필요한 무기는 이 책과 파이썬뿐. BeautifulSoup, 셀레니움, 테서랙트 등 강력한 파이썬 라이브러리 사용법과 함께 API, 인증, 이미지 및 텍스트 인식, 로그인 처리 등 웹 크롤링의 기초부터 고급 기법까지 종합적으로 다루는 유일한 책. 실제 업무와 생활에 적용할 수 있는 예제가 가득하다. 2판은 예제를 추가 및 업데이트했고 모던 웹에서 거의 모든 종류의 데이터를 가져오는 방법을
|
|
크롤링은 아마 10년도 더 전에 첫 직장에서 일할 무렵 개인적인 필요에 의해 접하게 되었다. 당시 구내식당 식단 표를 매번 사이트에 들어가서 확인하기가 귀찮아서 웹페이지에 접근하여 소스를 다 받아오고 특정 문자열로 위치를 찾아 저장해서 보여주는 스크립트를 작성했었다. 시간은 많이 지났지만 지금도 비슷한 수준으로 크롤링을 사용하고 있다. 회사에서 협업 툴 중 하나로 슬랙을 사용하는데, 날마다 IT 뉴스 목록을 채널에 뿌려주는 기능과 특정 종목의 주가 정보를 보여주는 봇도 달아두었다. 자동화를 한다는 것, 그리고 대부분의 정보는 웹에서 캐올 수 있다는 것부터 크롤러의 필요성은 충분히 크다고 생각한다. 크롤링이나 스크레이핑의 범위를 정확하게 알고 있지 않아서 과연 책에서 어떤 기술을 보여주는지 궁금했다.
이 책에서는 웹 소스를 퍼 오는 간단한 크롤링 기능부터 설명을 시작하지만, 끝까지 보면 예상했던 것보다 훨씬 다양한 내용에 대해 깊이 있게 다룬다. 인코딩부터 해서 자연어 처리, 이미지 처리, 이메일에 관한 내용까지 나온다. 여러 라이브러리에 대한 설명도 잘 해주어서 스크랩을 하기 위한 기반 기술을 잘 알게 되었다. 예를 들어 스크레이피라는 도구로 정보를 획득하여 알맞은 형식으로 저장하는 방법이 있다는 걸 배웠다. 사실 본인이 사용했던 크롤러는 데이터를 따로 저장을 하진 않는다. 실시간으로 그때그때 지정한 채널에 정보를 출력해 주기만 하면 되는 것이었다. 하지만 말 그대로 스크레이핑이라고 하면 정보를 추출하고 분석하는 단계까지 고려를 해야 한다. 데이터를 저장까지 했으면 필요 없는 정보를 걸러내는 작업도 필요한데 그런 방법도 설명해준다. 특히 마음에 들었던 부분은 스크레이핑의 윤리라는 주제에 대해서 설명한 부분이다. 필요한 작업을 이해 어떤 행위를 자동화했을 뿐이고, 사람도 마음만 먹으면 많은 부하를 유발할 수 있는데 봇을 쓴다고 해서 문제 되겠어?라고 쉽게 생각하는 경우도 있을 것이다. 하지만 이 책에서는 대상 서버에서 사람처럼 보일 수 있게 하는 방법을 설명해주는 한편, 피해를 입힐 수 있다는 사실에 대해 주의를 주고, 또 자신의 서버가 그러한 공격을 방어할 수 있는 기술도 알려주는 등 다양한 각도에서 접근하고 있다. 제대로 된 크롤러, 스크레이핑을 공부하고 싶다면 적극 추천하고 싶다.
내용의 이해에 있어서 파이썬 초보자는 좀 어렵겠다 싶은 생각이 들었다. 언어에 대한 설명은 따로 하지 않는다. 또 크롤링을 처음 접하는 사람에게는 브라우저에서 보이는 페이지 화면과 실제 내가 원하는 추출하고 싶은 정보 등을 그림으로 설명해줬으면 하는 아쉬움이 있다. 대부분 텍스트와 코드로 설명을 하고 있어서 기술에 대한 부분은 이해하기 좋았지만 활용이나 응용을 하기 위한 기획을 위한 그림을 그리기에 조금 어렵지 않나 하는 생각이 들었다.