初めに
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()
取得するアカウントに鍵がかかっている場合には注意が必要です。
終わりに
使用方法が分かれば、公式サイトで関数を見ることで、本当にすべての情報を簡単に取得することができます。
参考にしたサイトと公式サイトのリンクを張っておきます。
ご指摘、ご質問がございましたら、ぜひコメントよろしくお願いします。