차선책은 있다..!!!!
데이터분석의 시대에 살고 있다. 분석이라하면 '분석'을 잘하는 사람, 통계학적 지식을 많이 알고 있는 사람이 전문가 같아 보이지만 60% 정도만 맞는 얘기다.
데이터 분석을 잘하기 위한 최고의 조건은 좋은 데이터의 보유 여부다. 좋은 데이터에 좋은 분석 결과가 나오는 이치는 너무 나도 당연하지만 모두들 이를 간과한다.
회사에 소속됐다면 허락이 가능하다는 가정하에, 회사 보유 데이터를 사용하면 된다. 그렇지 않다면 본인이 좋은 데이터를 구매하거나 스스로 만들어야 한다. 스스로 만드는 대표적인 방법이 웹 크롤링이다.
웹크롤링(Web Crawling)이란, 웹상의 정보들을 탐색하고 수집하는 작업을 말한다. 아주 쉽게 말하면 웹사이트 상에 띄워진 글자, 이미지 등을 나의 개인 pc에 수집하는 것이다.
많은 웹 크롤링이 있지만 요즘 가장 많이 하는 것중 하나가 뉴스기사 제목과 본문 내용을 수집하는 것이다.
사람들이 가장 원하는 뉴스기사 웹 크롤링은 네이버 검색을 통해 나온 뉴스 기사 제목과 본문을 크롤링하는 것이다. 결론부터 말하면 매우힘들다.
그전에 뉴스기사 웹 크롤링은 두가지 종류가 있다. 첫째로 내가 입력한 검색어가 포함된 뉴스에 대한 크롤링이다. 둘째로 네이버 뉴스 섹션에 띄워주는 뉴스에 대한 크롤링이다.
네이버에서 내가 입력한 검색어가 포함된 뉴스 크롤링은 가능하지만, 본문 데이터 수집은 힘들다. 검색 결과로 나온 뉴스 제목만 수집하는 것은 매우 쉽다. 네이버 뉴스 API도 이를 지원하고 있다. 본문 내용 검색이 힘든 이유는 형식이 달라서다.
검색 결과로 나온 뉴스를 클릭하면 해당 언론사로 이동해 뉴스를 볼 수 있다. 우리는 API와 같은 공식 루트가 아닌 웹 크롤링으로 가져와야 하기 때문에 HTML 등의 태그를 제거하고 내용만 가져와야 하는데 언론사 마다 태그 형식이 다르다. 모든 언론사에 맞게 코드를 만들지 않는한, 쉽지 않다.
다음으로 네이버 뉴스 섹션에 있는 기사들의 제목과 본문을 수집하는 것이다. 이것은 가능하다. 여기서 나오는 뉴스들은 모두 해당 언론사로의 이동 없이 네이버 내에서 열리기 때문이다. 이것만 맞춰 코드를 만들면 된다.
이를 종합하면 내가 원하는 검색어가 포함된 뉴스기사의 제목고 본문 데이터 크롤링은 '네이버'에선 힘들단 얘기다. 하지만 형식이 일정하다면 가능하다. 때문에 각 언론사 홈페이지에서 제목과 본문을 수집하기로 결정했다.
조선일보, 동아일보, 경향신문, 한겨레 등 다양한 언론사들이 존재한다. 각 언론사 홈페이지에서 검색어를 입력해 나온 뉴스기사의 제목과 본문을 수집하면 되는 것이다.
하..지..만!!! 여기서도 문제가 있다. 각 언론사에서 자신들의 데이터 웹크롤링을 통해 수집되는 것을 막기 때문이다. 대표적으로 조선일보인데, html 태그를 보면 웹 크롤링을 막기위한 조치가 되어 있다.
비록 국내 최대 언론사 중 하나인 조선일보는 크롤링을 막고 있지만 언론사는 많다. 다른 언론사들도 몇개 더 해보니 동아일보, 국민일보는 가능했다. (아직 그외 다른 언론사까진 해보지 않았다)
다음 글에서 해당 언론사를 통해 크롤링한 코드를 소개할 예정이다.