Instagramを運用していて、公式アカウントのフォロワー数の推移や投稿したメディアに対するいいね数といったインプレッション数を分析したいといったことはありませんか?また、各投稿についているコメントを俯瞰して見ることができれば、ユーザーの傾向を把握するといったことも可能です。
本記事では、Pythonを経由してInstagramのAPIを叩いて情報を取得・加工する方法を紹介します。
本記事は元々、データパレード様のブログに私が執筆した技術ノウハウとして掲載したものです(下記)。Qiitaを通じてより多くの方に届けられれば、そして技術者の方と知見を共有し、フィードバックをいただく目的で許可をいただき掲載しました。
APIの利用設定
InstagramのAPIを使うためにいくつか設定が必要です。本記事ではPythonでのデータ取得にフォーカスするため割愛しますが、利用開始には公式ページおよびこちらの記事が参考になりました。
Pythonを使ってデータを取得
データ取得に必要な情報
サンプルスクリプトはこちらからダウンロード可能です。
こちらのconfigsフォルダに、ユーザーIDやアクセストークンを指定する設定ファイルがあります。
[DEFAULT]
IG_USER_ID = XXXXXXXXXXXXX
ACCESS_TOKEN = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
API_VERSION = v17.0
USER_NAME = hogehoge.official
[LOG]
PATH = C:\logs\Instagram
FILENAME = instagram
IG_USER_IDやACCESS_TOKENは前章のページの手順で取得できます。
取得できる情報
Pythonスクリプトからは下記の情報が取得できるようになっています。
アカウント情報
- アカウント名
- フォロー/フォロワー数
- 投稿数
投稿情報
- 投稿内容
- コメント数
- いいね数
- リール/アルバムといった分類
コメント
- コメントしたアカウント名
- コメントした時刻
- アカウントが投稿につけたコメント内容
各メディア(リール/アルバム)情報
- 再生数
- インプレッション数
実行方法
下記のようにスクリプトを実行すると、dataフォルダに取得した情報が出力されます。前章で紹介したデータをPython内でCSVの形式になるよう加工して出力されます。
python src\main.py -configfile_path "C:\Workspace\python\get_Instagram\configs\config_instagram.ini" -csv_path "C:\Workspace\python\get_Instagram\data" -sleep_sec 0.3
| 出力CSV | 内容 |
|---|---|
| me.csv | アカウント情報 |
| media.csv | 投稿情報 |
| comments.csv | コメント情報 |
| reel.csv | メディア(リール)情報 |
| album.csv | メディア(アルバム)情報 |
どうやって分析すればよい?
出力されたCSV同士は、各投稿の情報(media.csv)を基本情報として下記のように関連付けて分析することができます。
media.csvにあるidが各種エンゲージメントデータ(comments.csv, reel.csv, album.csv)のmedia_idに紐づきます。
日付の情報と合わせて、フォロワーの増減数やリール・インプレッションなどの推移を確認することができます。どのような投稿がユーザーに見られているのかを確認しながら、インスタを運用できるようになりますね。
さいごに
本記事では、InstagramのAPIを使ってアカウント及び投稿情報、インプレッションなどを取得する方法を紹介しました。今回インプレッション数などをExcelやBIツール等で分析しやすいようCSVの形式で出力しています。少し高度ではありますが、投稿についたコメント内容を形態素解析することで、ユーザーの興味を大まかに可視化してみるのも面白そうですね。


