search
LoginSignup
1

posted at

updated at

【Python】Seleniumを使わずにInstagramのフォロワーを全件取得する

初めに

 Instagramのフォロワーを全件取得する際、いくつか候補があります。例えば別のサイトではSeleniumを使用しています。

 Instagramのフォロワーの表示はフレキシブルになっているため、画面上では一度で取得できず、スクロールする必要があるため、時間がかかってしまいます。

Instaloaderとは

 こちらを解決するのが、InstaloaderというPythonライブラリです。以前の記事でも記載しましたが、Instagramで行いたいと思うことはこのライブラリを用いればGUIを使うことなく、すべて行うことができます。

ソースコード

 全件取得のソースコードは以下になります。順に解説していきます。

import instaloader

    #インスタグラムにログイン
    loader = instaloader.Instaloader()
    loader.login(INSTAGRAM_ID, INSTAGRAM_PASSWORD)

    #指定したIDのprofileオブジェクトを作成
    profile = instaloader.Profile.from_username(loader.context, id)#id:フォロワーを取得したいアカウントのユーザーID

    #指定したIDのフォロワーを全件取得
    followers = profile.get_followers()

    #ユーザーIDを出力する
    for follower in followers:
        print(follower.username)

 まずはinstaloaderをインポートします。

import instaloader

instaloaderのインストール方法はpip3を使用するだけです。

pip3 install instaloader

 以下の公式サイトも参照してください。

 次にinstaloaderでInstagramにログインします。

    #インスタグラムにログイン
    loader = instaloader.Instaloader()
    loader.login(INSTAGRAM_ID, INSTAGRAM_PASSWORD)

 Instagramでフォロワー一覧を見たり、投稿を保存したりするためにはログインが必要になります。それと同じで、instaloaderでも任意のアカウントのフォロワーを取得するためにはログインが必要になります。
 instaloaderのMainClassであるInstaloaderのlogin関数を使います。
 引数はユーザーIDとパスワードです。
 一行にまとめることもできます。

    #インスタグラムにログイン
    instaloader.Instaloader.login(INSTAGRAM_ID, INSTAGRAM_PASSWORD)

 次にフォロワーを取得したいアカウントのProfileオブジェクトを作成します。

    #指定したIDのprofileオブジェクトを作成
    profile = instaloader.Profile.from_username(loader.context, id)#id:フォロワーを取得したいアカウントのユーザーID

 Profileオブジェクトは任意のアカウントに対して作成することができ、関数を使用することで、そのアカウントの投稿や、画像、フォロワーなどすべての情報を取得することができます。Postオブジェクトと並んで、非常に使い勝手の良いclassです。

 最後にPorileオブジェクトで指定したユーザーのフォロワーを取得します。

    #指定したIDのフォロワーを全件取得
    followers = profile.get_followers()

 取得するアカウントに鍵がかかっている場合には注意が必要です。

終わりに

 使用方法が分かれば、公式サイトで関数を見ることで、本当にすべての情報を簡単に取得することができます。
 参考にしたサイトと公式サイトのリンクを張っておきます。
 ご指摘、ご質問がございましたら、ぜひコメントよろしくお願いします。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
1