파이썬으로 인스타그램 데이터 가져오기

You are currently viewing 파이썬으로 인스타그램 데이터 가져오기
  • Post category:자동화 / 파이썬
  • Reading time:5 mins read

지난 글 스프레드시트로 인스타그램 크롤링에 이어서

https://ga4.kr/?p=178

이번에는 파이썬을 활용해 인스타그램 팔로워 수 등을 크롤링 해보도록 하겠습니다. 물론 단순 크롤링이기 때문에~ 앱에서 보는 통계 수치에 비하면 비교적 간단한 정보만 수집하게 됩니다. 그럼에도 불구하고 다양한 계정의 팔로워 수치를 데일리로 찍으면 ‘데이터 셋’이 되겠죠?

적은 데이터도 모으면~ 데이터셋이 되는 마법

파이썬 활용. 인스타그램 크롤링

실제로 인스타그램 크롤링을 제대로 하기 위해서는 로그인을 해야하기도 하고, user-agent며 건드려야 하는게 산더미 이지만, 이번 칼럼에서는 딱 필요한 기능만 설치해서 ‘라이브러리로’ 쉽게 쉽게 진행하도록 하겠습니다.

파이썬 좋다는게 뭐겠어요. 이런 라이브러리 언넝 가져다 효율 뽑아내는게 가능하기 때문이죠.

자 그럼 코드 부터 보겠습니다.

import instaloader

#인스타로더 사용 시작.
bot = instaloader.Instaloader()
#사용자 이름 정의 직접 기입해도 상관없습니다.
Username = input('Enter the Account Username: ')

#프로필을 정의합니다.
profile = instaloader.Profile.from_username(bot.context, Username)

print("Username: ", profile.username)
print("User ID: ", profile.userid)
print("Number of Posts: ", profile.mediacount)
print("Followers: ", profile.followers)
print("Followees: ", profile.followees)

15줄 코드로 username / id(number) / post 수 / 팔로워 수 / 팔로잉 수 를 받아옵니다. 로그인하지 않고 진행하는 스크립트이기 때문에 간단한 데이터만 받아옵니다.

이렇게 프린트된 데이터는 pandas 라이브러리르 활용하면 csv파일로
gspread 파이썬 라이브러리까지 활용한다면 똑같이 스프레드시트에 보낼 수 있습니다.

각각의 라이브러리 사용법은 다음 칼럼에서 상세히 다뤄 보도록 하고,

먼저 instaloader 사용을 위해 터미널에서

pip install instaloader

로 시작해줍니다. 설치를 기다리고 나면 위의 예시 스크립트를 붙여넣기해서 실행해주면 됩니다.
로그인 등을 연계해서 인스타로더 라이브러리를 활용하면 더 풍부한 데이터를 가져올 수 있는데요.

예를 들어 비활성 팔로워의 아이디 목록이나, graphql 등을 활용할 수 있습니다.

아래는 로그인시 사용한 graphql 구조입니다.

graphql_query(query_hashvariablesreferer=Nonerhx_gis=None)

Do a GraphQL Query.Parameters

  • query_hash (str) – Query identifying hash.
  • variables (Dict[strAny]) – Variables for the Query.
  • referer (Optional[str]) – HTTP Referer, or None.
  • rhx_gis (Optional[str]) – ‘rhx_gis’ variable as somewhere returned by Instagram, needed to ‘sign’ request

Return type

Dict[strAny]Returns

The server’s response dictionary.graphql_node_list(query_hashquery_variablesquery_refereredge_extractorrhx_gis=Nonefirst_data=None)

Retrieve a list of GraphQL nodes.

Deprecated since version 4.5: Use NodeIterator instead, which provides more functionality.Return type

Iterator[Dict[strAny]]

직접 로그인 정보를 넣는게 좀 그렇다면 세션 파일등을 저장해놨다가 호출하는 형식으로도 로그인 할 수 있기 때문에 활용가능성은 좀 더 다양할 것으로 보이네요.

graphql 문법에 대해 더 자세히 알아보시려면 페이스북에서 제공해주는 공식 문서를 확인하실 수 있습니다. 물론 썩 친절하지는 않지만요!

https://developers.facebook.com/docs/instagram-api/guides/insights

답글 남기기