일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- GIT
- 국민대
- python3
- Seq2Seq
- instaloader
- Stack
- OS
- gan
- 스택
- 국민대학교
- LSTM
- Python
- googleapiclient
- 파이썬
- kmu
- 프로그래머스
- C++
- 회귀
- 머신 러닝
- Heap
- SQL
- 운영체제
- machine learning
- 데이터베이스
- db
- Regression
- programmers
- PANDAS
- 정렬
- 재귀
- Today
- Total
정리 노트
사전 과정 - instaloader 둘러보기 본문
2024.02.05 - [K-POP 아이돌 SNS 분석] - 사전 조사 글에서 준비하기로 한 것들 중 instaloader를 사용하기 위한 준비 과정에 대해 작성합니다.
패키지 설치
저는 일단 PyCharm으로 진행할 예정이라 PyCharm을 기준으로 설명합니다.
PyCharm을 사용할 때는 직접 'instaloader' 검색해서 설치할 수 있습니다. 일단, 가장 최신 버전의 것을 설치했습니다.
만약 colaboratory 환경 같은 곳에서 사용한다면 아래 명령어를 사용해 설치할 수 있습니다.
!pip install instaloader
패키지 둘러보기
패키지에 대한 자세한 설명들은 아래 공식 사이트에서 확인하시길 바랍니다. 이 포스트에서는 극히 일부만 살펴봅니다.
인스타그램 계정 이름을 통해 해당 사용자의 Profile 클래스를 가져올 수 있습니다. 이 클래스의 get_posts 함수를 통해 해당 계정의 인스타그램 포스트들의 정보를 가져올 수 있습니다.
import instaloader
loader = instaloader.Instaloader()
posts = instaloader.Profile.from_username(loader.context,
'newjeans_official').get_posts()
for post in posts:
print("Uplaod date:", post.date_local) # 업로드 일자
print("Title:", post.title) # 포스트 타이틀
print("Caption:\n", post.caption) # 포스트 본문
print("Tagged Users:", post.tagged_users) # 태그된 계정 리스트
print("Hashtags:", post.caption_hashtags) # 해시태그 리스트
print("Mentions:", post.caption_mentions) # 멘션된 계정 리스트
print("Post Type:", post.typename) # 포스트 타입
print("# of sidecar Post:", post.mediacount) # 포스트 이미지 수
print("Sponsered Post:", post.is_sponsored) # 스폰서 유무
print("Location:", post.location) # 위치
print(f"Likes: {post.likes}, Comments: {post.comments}") # 좋아요 수, 댓글 수
break
많은 정보들을 확인할 수 있지만 제가 주목한 정보들은 아래와 같습니다.
- date_local: 포스트가 올려진 일자
- caption: 포스트 본문
- mediacount: 포스트에 올려진 미디어(이미지/영상) 수
- likes: 좋아요 수
- comments: 댓글 수
2024.01.29 - [K-POP 아이돌 SNS 분석] - 주제 선정과 그 이유 포스트에서 chatGPT가 제시한 인스타그램 활성화 지수 계산 식에서 좋아요 수, 댓글 수, 포스트 수, 스토리 수가 있었는데 이 정보들을 instaloader를 통해 얻어서 사용할 수 있을 것 같습니다.
위 코드를 실행하면 아래와 같이 결과를 얻을 수 있습니다.
실제 인스타그램에 접속해 뉴진스(팬은 아니고 그냥 갑자기 생각난 그룹입니다.)의 최신 포스트를 보면 내용이 일치함을 볼 수 있습니다.
포스트 외에도 인스타 스토리, 하이라이트 정보도 아래의 코드를 통해 얻을 수 있습니다.
import instaloader
loader = instaloader.Instaloader()
# 이 과정에서는 로그인 필요
loader.login(user='인스타그램 사용자명', passwd='인스타그램 비밀번호')
# 스토리 정보
stories = loader.get_stories(userids=[12345678910])
for story in stories:
for item in story.get_items():
print(item.원하는_정보)
# 하이라이트 정보
highlights = loader.get_highlights(user=12345678910)
for highlight in highlights:
for item in highlight.get_items():
print(item.원하는_정보)
chatGPT의 제안에서 생각할 점
위에서 잠깐 얘기했듯이 chatGPT가 제안한 활성화 계산 식에서는 팔로워 증감률도 있습니다. 패키지에서는 팔로워 또는 팔로우하는 계정의 리스트를 얻을 수는 있지만 시간에 따른 증감률은 얻을 수 없습니다.
위 사이트를 들어가면 최근 90일 동안의 증감률을 체크할 수 있지만 그 이상의 기간 동안은 확인할 수 없습니다.
따라서, 제안받은 계산 식에서 증감률은 제외하고 나머지 정보들에 가중치를 조금씩 더 추가해야 할 것 같습니다.
데이터 구성
현재까지 인스타그램 데이터에 대해서 생각하는 데이터 구상은 아래와 같습니다. 이는 시간이 지나면서 바뀔 수 있습니다.
업로드 일자(정렬 기준) | 포스트 미디어 수 / 하이라이트 미디어 수 | 포스트 좋아요 수 | 포스트 댓글 수 |
스토리는 24시간이 지나면 사라지기 때문에 instaloader 패키지도 과거의 스토리까지 잡아낼 수 없습니다. 따라서 계정에서 만들어 보관하고 있는 하이라이트의 개수를 세는 것으로 대체해야 할 것 같습니다.
'K-POP 아이돌 SNS 분석' 카테고리의 다른 글
구체화 과정 (2) | 2024.02.17 |
---|---|
googleapiclient로 Youtube 데이터 가져오기 (2) | 2024.02.15 |
사전 과정 - tweepy 살펴보기 (0) | 2024.02.10 |
사전 조사 (2) | 2024.02.05 |
주제 선정과 그 이유 (0) | 2024.01.29 |