인스타그램 게시글 크롤링 코드 공유
최근 데이터 시각화 강의에서 조별과제로 남이섬 맛집 시각화 프로젝트를 진행했다. (프로젝트명은 냠이섬이다.)
우리 조는 인스타그램에 올라온 남이섬 맛집 관련 게시물을 크롤링하고 정제하여 시각화 하기로 하였고 이를 위해 파이썬 코드를 작성하였는데,
프로젝트가 마무리 된 뒤 나름 시간을 쏟은 코드를 방치하기 아까워 혹시나 필요한 분이 계실까 이렇게 글을 적어본다.
프로젝트는 한림대학교 디지털인문예술전공 기말 프로젝트 전시회에 출품할 예정이다.
궁금하다면 DAH 기말 프로젝트 전시회 2021-1를 확인하시기 바란다.
본격적으로 얘기하기에 앞서, 영어영문학과 학생의 입장에서 작성한 파이썬 코드이므로 능력자 분들이 보신다면 부족한 부분이 많을 것이라 생각된다.
만약 그런 생각이 드신다면 비전공생이 나름 노력을 했구나~ 하고 넓은 마음으로 넘어가 주시길 바란다.
일부 코드는 본인이 작성한 것이 아님을 먼저 밝힌다.
코드는 교수님께서 제공해주신 코드를 입맛에 맞게 수정 및 조합한 뒤 필요한 부분을 추가로 작성하는 방식으로 작성했다.
이때 함수로 선언되지 않고 전역에서 실행되던 코드들을 기능별 함수로 묶었고,
코드의 어느 부분을 수정해야 하는지 잘 모르는 분들을 위해 개인에 맞춰 자주 변경해야 하는 부분(인스타 그램 id, pw, 검색 키워드등)은 input으로 처리하여 실행할 때마다 변경이 가능하도록 하였으며
함수마다 달리 저장되는 엑셀 파일의 이름을 기억하기에 어려움이 있을 것 같아
모든 함수의 실행에는 크롤링시 사용한 키워드(ex: 남이섬맛집) 만을 입력하도록 처리했다.
동시에 진행 경과를 알 수 있게 tdqm을 이용하였고 자잘한 에러를 수정하였다.
사실 더 많이 바꾼 것 같지만 워낙 많아 이만 줄인다.
마지막으로, 구글에 인스타그램 크롤링이라 검색했을때 제시되는 코드와 동일한 코드도 있는데 이 부분은 본인도 각종 피드백에 대응하며 알게 되었다.
이는 강의에 제공된 코드의 일부와 인터넷에 제공된 코드의 일부 동일한 코드가 존재했을 뿐이지 본인이 의도적으로 다른 분들이 공유하신 코드를 단순 짜집기 하여 ‘모두 내 손으로 일궜다!’ 라고 주장하려는 것이 아님을 알아주시기 바란다.
공유하려는 코드에는 크게 3가지 기능이 포함되어있다.
- 인스타그램 게시글 크롤링(본문, 날짜, 종아요, 위치, 해시태그)
- 지도 좌표 크롤링(카카오 API 이용)
- 해시태그를 이용한 워드클라우드 생성
동시에 위 기능들 중 대부분은 데이터를 엑셀로 내보내고 있음을 알린다.
셋 중 필요한 기능이 있다면 아래 제공된 코드를 사용하시면 될 것 같다.
코드 사용방법
- 하단의 링크를 클릭하면 구글 드라이브 (공개용) 폴더로 연결된다.
- (권장) 해당 폴더를 통째로 다운로드 하여 압축을 푼다.
- (비권장) 해당 폴더의 냠이섬_프로젝트_코드.ipnyb 와 chromedriver.exe를 다운로드 한 뒤 한 폴더에 넣고 해당 폴더 안에 files 라는 이름의 폴더를 생성한다.
- 주피터노트북 상에서 냠이섬_프로젝트_코드.ipnyb 를 연다.
- 해당 노트북에 작성된 사용 설명을 읽고 실행한다.
다운로드를 받지 않고 코드만 읽고 싶다면 구글 콜랩 사용을 추천한다.
크롤링 부분의 코드가 콜랩에 맞게 수정되지 않아 작동하진 않겠지만 그저 코드를 훑어 보는 것에는 큰 문제가 없을 것이라 생각된다.
만약 문제가 발생한다면 코드 내 기재된 이메일 또는 StrangeFate.K@gmail.com 으로 연락주시고
도움이 되어 이 게시글 링크를 출처로 남겨주시겠다면 마다하지 않겠다.