파이썬을 처음 시작하는 사람들 중 정말 많은 수가 크롤링(Crawling)을 위한 것으로 안다. 학부생 때 주변을 봐도 데이터 분석, 머신러닝, 웹 크롤링 중 하나가 파이썬을 배우는 이유였던 경우를 꽤 자주 봤었다. 4~5년 전이었던가, 내가 만들어서 혼자 쓰려던 툴이 있어서 참고 서적으로 1판을 대충 훑어봤던 기억이 있다. 그 뒤로는 딱히 크롤링 도서를 참고하지는 않고 인터넷을 보며 엉망으로 짜왔는데, 2019년에 이미 2판이 나와있었다.
사실 파이썬으로 웹 크롤링하는 정보는 인터넷에 워낙 많이 널려있기 때문에 책의 내용을 정리하는 것이 딱히 의미는 없어보이지만, 개인적으로 책 한권을 가지고 훑어본 다음 인터넷을 찾는 것을 추천한다. 오래되었고 꽤 고착화된 라이브러리를 사용할 때는 검색하는 시간을 줄여서 힘을 많이 시간을 아끼자.
책 내용
"파이썬 크롤링" 이라고 검색하면 제일 처음 나오는 것은 역시 BeautifulSoup 다. 이 책 역시 BeautifulSoup로 1장을 시작한다. 특정 웹페이지를 크롤링하고 HTML을 처리하거나 데이터베이스 MySQL 에 저장하는 등 아주 기본적인 Scraper 를 구현하는 내용을 1장에서 배울 수 있다. 이정도만 해도 사실 혼자 단순하게 정보를 모으기 위한 크롤러 정도는 만들 수 있어서 간단한 토이프로젝트 정도에 활용할 수는 있다.
파트 2 에서는 고급 스크레이핑이라고해서 다양한 문서 형식들 (CSV, PDF, DOCX 등) 을 읽거나 자연어 처리 등을 배울 수 있다. 사실 정말 많이 쓰이는 부분은 챕터 10부터인데, 단순이 데이터를 긁어오는 것에서 벗어나 특정 웹 사이트를 휘젓고 다닐 수 있는 기술들을 배울 수 있다. 어떤 페이지에 로그인을 한다던가 (로그인을 해야만 보이는 데이터들을 긁어 올 수 있게), 쿠키를 처리하는 등 실제 웹사이트를 접근하는 흉내를 내는 법을 배운다. 자연스럽게 Selenium 을 익히게 될 거다. 이렇게 자동화되서 인터넷을 마구 긁고 다니면 당연히 서버 쪽에서는 싫어한다. 그치만 항상 피하는 법은 있는 법. 14장에서는 마치 웹사이트를 크롤링하고 있는 프로그램이 사람처럼 보이게 하기 위해 "스크레이핑 함정 피하기" 를 배우는데, 만능은 아니지만 이까지 배우면 왠만한 원하는 사이트의 크롤링은 할 수 있을 것이라 생각된다.
파이썬 막 배우고 이제 뭐해야 돼? 싶은 사람은 그냥 이 책 보세요.
책이 300페이지가 넘는 분량이지만 파이썬을 이미 아는 사람이라면 생각보다 빨리 읽을 수 있을 것이라 생각된다. 그리고 혹시나 책의 내용이 이해가 안된다라고 생각하면 조금만 검색하면 보다 많은 내용을 쉽게 얻을 수 있다. 다만 친절하게 정리가 잘 안되어 있을 뿐... 기본서로써 하나쯤 구비해놓고 살펴보기에 정말 좋은 책이다. 차라리 파이썬을 막 배운 초심자들이 다음 이런 책을 보고 프로젝트를 한번 해보면, 정말 재밌게 프로그램을 만드는 법을 배울 수 있을 것 같다. 콘솔로 찍는 이상한 건 그만하고...