Pythonライブラリ「Instaloader」を使用した基本的なサンプルコードです。
ライブラリのインストール
# Instaloaderのインストール
pip install instaloader
指定ユーザのプロフィール情報を取得するコード
- プロフィール情報取得:フォロワー数、投稿数など基本情報
- 投稿ダウンロード:メディアファイルとメタデータ(キャプション、いいね数など)を保存
import instaloader
# Instaloaderインスタンスの作成
L = instaloader.Instaloader()
try:
# Instagramにログイン(必要に応じて)
# L.context.log(\"ログイン中...\")
# L.login(\"your_username\", \"your_password\") # 認証が必要な操作の場合
# プロフィール情報の取得
def get_profile_info(username):
profile = instaloader.Profile.from_username(L.context, username)
print(f\"【{username} のプロフィール情報】\")
print(f\"フォロワー数: {profile.followers}\")
print(f\"フォロー数: {profile.followees}\")
print(f\"投稿数: {profile.mediacount}\")
print(f\"バイオ: {profile.biography}\")
return profile
# 特定ユーザーの最新投稿をダウンロード
def download_recent_posts(username, count=3):
profile = get_profile_info(username)
posts = profile.get_posts()
for index, post in enumerate(posts, 1):
if index > count:
break
L.download_post(post, target=f\"{username}_posts\")
print(f\"ダウンロード完了: {post.url}\")
# 実行例
if __name__ == \"__main__\":
target_user = \"instagram\" # 公式アカウント(テスト用)
# プロフィール情報取得
get_profile_info(target_user)
# 最新3投稿をダウンロード
download_recent_posts(target_user, count=3)
except instaloader.exceptions.ProfileNotExistsException:
print(\"プロファイルが存在しません\")
except instaloader.exceptions.ConnectionException as e:
print(f\"接続エラー: {str(e)}\")
except Exception as e:
print(f\"エラーが発生しました: {str(e)}\")
特定のタグに関連する最新投稿を取得するコード
ハッシュタグ検索:特定のタグに関連する最新投稿を取得
import instaloader
# Instaloaderインスタンスの作成
L = instaloader.Instaloader()
try:
# Instagramにログイン(必要に応じて)
# L.context.log(\"ログイン中...\")
# L.login(\"your_username\", \"your_password\") # 認証が必要な操作の場合
# ハッシュタグ検索
def search_hashtag(tag, count=5):
print(f\"ハッシュタグ \'#{tag}\' の最新投稿:\")
for post in instaloader.Hashtag.from_name(L.context, tag).get_posts():
print(f\" - {post.owner_username}: {post.caption[:50]}...\")
if (count := count - 1) <= 0:
break
# 実行例
if __name__ == \"__main__\":
# ハッシュタグ検索
search_hashtag(\"python\", count=2)
except instaloader.exceptions.ProfileNotExistsException:
print(\"プロファイルが存在しません\")
except instaloader.exceptions.ConnectionException as e:
print(f\"接続エラー: {str(e)}\")
except Exception as e:
print(f\"エラーが発生しました: {str(e)}\")
注意事項
- 連続的なリクエストはInstagramの利用規約違反となる可能性あり
- 非公開アカウントのデータ取得は禁止
- ダウンロードしたデータの利用は著作権法を遵守
- ログインする場合は2要素認証をOFFに設定する必要あり


コメント