IT

카카오 검색 API를 이용한 '깃대종' 블로그/카페 검색 가시화

유병혁 2019. 9. 8. 15:14

안녕하세요? 이번 글은 카카오 검색 API를 이용하여 '깃대종'에 관한 블로그, 카페 검색

글을 저장하고, 이 정보를 트리맵(Treemap)으로 가시화하는 과정을 정리해 보겠습니다.


카카오 검색 API 사용법은 공식 홈페이지 내용을 참조하시면 되겠습니다.

카카오 검색 API 공식 홈페이지 | https://developers.kakao.com/docs/restapi/search


그럼, 일단 필요한 라이브러리를 추가해볼까요?! 가시화를 위한 트리맵은 squarify(https://github.com/laserson/squarify)를 사용했습니다.

일단, 블로그 검색부터 시작해 보겠습니다. 아래와 같이 검색 결과는 JSON 형식으로 반환됩니다.

블로그 검색 | https://developers.kakao.com/docs/restapi/search#블로그-검색


카카오 검색 API에서 page와 size의 기본값은 각각 1과 10입니다. 따라서 검색 결과는 1페이지 문서 10개가 반환됩니다.



반환된 JSON 형식의 meta에서 total_count는 3852, pageable_count는 799, is_end는 False임을 확인할 수 있습니다.

깃대종에 검색된 문서 수는 3852건이고 노출가능 문서 수는 799건, 현재 페이지가 마지막 장은 아님을 의미합니다.



블로그 검색결과를 리스트로 받은 후, 다시 Pandas 데이터프레임으로 변환해 본 결과입니다.


아래와 같이 총 10개 블로그 글이 확인됩니다. 제가 5일 전에 작성한 깃대종 주제 블로그 글도 9번에 표시되어 있습니다.


블로그 검색 결과에서 제공되는 컬럼 정보는 아래와 같습니다.



카카오 검색 API를 이용하여 원하는 키워드와 페이지 수의 문서를 50개 호출하는 함수를 작성했습니다.

이제 페이지 수를 늘려가면서 50개씩 문서를 리스트에 추가하는 반복문을 실행합니다. 그리고 이 반복문은 마지막

페이지에 다다르면 종결되도록 설정하였습니다. 블로그 검색결과를 데이터프레임으로 조회해 본 결과는 아래와 같습니다.


확인해 보니 깃대종 블로그 총 570건 글이 수집되었습니다.


이번에는 카페 글을 수집해 보겠습니다. 검색 방법은 큰 차이가 없습니다.

카페 검색 | https://developers.kakao.com/docs/restapi/search#카페-검색


두 document를 비교해 보시면 블로그 이름 키는 blogname, 카페 이름 키는 cafename으로 차이가 있습니다.

블로그와 카페 데이터프레임을 하나로 연결할 것이므로 블로그, 카페 이름 키는 name으로 설정하였습니다.



깃대종 카페 건수는 909건으로 조회가 됩니다.


이제 블로그와 카페 데이터프레임을 하나로 연결합니다.


자, 이제 수집된 데이터프레임을 엑셀파일로 저장합니다.


이번에는 깃대종 블로그, 카페 통계를 트리맵(treemap)으로 구현해 보겠습니다. 먼저 연도별로 수집된 블로그, 카페 건수를 통계치로 산출해 봅니다.


앞서 소개드린 것처럼 squarify를 통해 트리맵을 작성해 봤습니다.

참고로 다음 검색원칙은 다음 글을 참조하시면 됩니다: 다음 검색원칙 | https://cs.daum.net/faq/15/15649.html#31070


이번에는 가장 많은 '깃대종' 글을 올린 블로그, 카페 이름을 트리맵으로 구현해 봤습니다.


결과는 다음과 같습니다. '태백산 jumok' 카페에서 17회로 가장 많은 깃대종 언급이 있었음을 알 수 있습니다.