前置き
以前趣味でInstagramからのビッグデータ収集を行っているのですがInstagramってスクレイピング対策堅いですよね。そんな対策を打破するライブラリをご紹介します!
インスタのスクレイピング対策はトップレベル
ユーザーページへのアクセスで、数十回ユーザーページにアクセスしただけなのに本人確認画面に飛ばされる始末でした。
スクレイピング対策の対策に奮闘(プロキシでアクセス、UA変更や人間らしい動きを)しながら様子を伺っていたのですがどれも弾かれダメでした。
どうやらAIなどでスクレイピングを判断しているようです。。
希望のライブラリ Instaloader!
最終的に海外の掲示板を頼りに周回していると面白いライブラリが見つかりました。『Instaloader』という名前のライブラリでユーザーIDさえあればその人のプロフィールや投稿数、フォロワー、フォロー中の取得が数行で行えました。コンソール(cmd)で、
pip install instaloader
と入力すればインストールできます。
ライブラリでできること
・特定のハッシュタグが付いた投稿の情報取得
・ストーリーや投稿画像のダウンロード
・投稿のいいね数
・プロフィール文やプロフィール画像、フォロワー数など取得
などなど
プログラミング例
【ソース】
from instaloader import Instaloader, Profile
id = 'watanabenaomi703' # 渡辺直美さんのアカウントIDを入力しました
profile = Profile.from_username(L.context, id) # プロファイル取得
UserName = profile.full_name # ユーザー名取得
posts = profile.mediacount # 投稿数取得
Follower = profile.followers # フォロワー数取得
Follow = profile.followees # フォロー中数取得
print(f'ユーザー名:{UserName}\n投稿数:{posts}\nフォロワー数:{Follower}\nフォロー中数:{Follow}')
【出力結果 2022/01/07時点】
ユーザー名: 渡辺直美 Naomi watanabe
投稿数:1055
フォロワー数:9,605,708
フォロー中数:752
まとめ
ライブラリの詳しいことはわかりませんが、大量の件数を問題なく取得できました。ぜひ皆さんも使ってみてくださいね。