LoginSignup
3

More than 1 year has passed since last update.

tweepy + Twitter API V2でフォロー、フォロワー一覧をCSVファイル出力

Last updated at Posted at 2023-02-06

はじめに

2023/2/9(おそらく米国時間)に実施すると公表1 されたTwitter APIの有料化前にTweepy経由にはなるがTwitter APIでプログラミングをもう少ししておきたいと考えた。

ちょうど少し前にアカウント凍結祭りもあったので、フォロワーとフォローの一覧をCSVファイルに出力して保存しておくためのプログラムを作成した。自分はTwitterでツイートするわけではないので、フォローしているユーザーの一覧さえ保存しておけば何が起こってもきっと大丈夫(のはず)。

環境

  • Pyhon 3.9.2(tweepy 4.12.1はPython 3.7~3.11をサポート)
  • tweepy V4.12.1(Twitter API V2を使用するため、V4.0.0以上必須)

次のコマンドでtweepy のバージョンは確認できる2

python -m pip show tweepy

出力結果(例)

Name: tweepy
Version: 4.12.1
Summary: Twitter library for Python
Home-page: https://www.tweepy.org/
Author: Joshua Roesslein
Author-email: tweepy@googlegroups.com
License: MIT
Location: /home/<ユーザ名>/.local/lib/python3.9/site-packages
Requires: requests, oauthlib, requests-oauthlib
Required-by:

事前準備

Twitter Deverloper Portalにてアカウントを作成し、Bearer Tokenを取得しておく。方法はインターネットにいくらでも転がっているのでそちらを参照。なお、登録だけで済むEssentialレベル(一番下)で構わない。

フォロワー一覧をCSVファイルに出力

フォロワー(指定ユーザーフォローしているユーザー)の一覧をCSVファイルに出力するプログラム。最大1000ユーザーまで取得できる。

ツイートを非公開にしているユーザー、いわゆる鍵付きユーザーには使用できない

GetFollowers.py
import tweepy
import csv

# Twitter Developer Portalで取得
BT = 'あなたのBearer Token'

UN = '検索したいユーザー名'	# @から始まるユーザー名、'@'不要
FN = 'followers.csv'    	# 出力CSVファイル名

client = tweepy.Client(BT)

# ユーザーIDを取得
user = client.get_user(username=UN)
user_id = dict(user[0])["id"]

# フォロワー取得(最大1000件まで)
users = client.get_users_followers(id=user_id, max_results=1000).data

# 検索結果出力
cnt=0
if users != None:
    with open(FN, 'w', encoding='utf-8', newline='') as file:
        writer = csv.writer(file)

        for user in users:
            cnt += 1
            csvRow = []
            csvRow.append(user.id)       # user id
            csvRow.append(user.name)     # display name
            csvRow.append(user.username) # @username
            writer.writerow(csvRow)

print(f'ユーザー(@{UN})のフォロワー{cnt}人の情報をファイル({FN})に出力しました。')

フォロー一覧をCSVファイルに出力

フォロー(指定ユーザーフォローしているユーザー)の一覧をCSVファイルに出力するプログラム。最大1000ユーザーまで取得できる。

ツイートを非公開にしているユーザー、いわゆる鍵付きユーザーには使用できない

Getfollowing.py

import tweepy
import csv

# Twitter Developer Portalで取得
BT = 'あなたのBearer Token'

UN = '検索したいユーザー名'	# @から始まるユーザー名、'@'不要
FN = 'following.csv'    	# 出力CSVファイル名

client = tweepy.Client(BT)

# ユーザーIDを取得
user = client.get_user(username=UN)
user_id = dict(user[0])["id"]

# フォロー取得(最大1000件まで)
users = client.get_users_following(id=user_id, max_results=1000).data

# 検索結果出力
cnt=0
if users != None:
    with open(FN, 'w', encoding='utf-8', newline='') as file:
        writer = csv.writer(file)

        for user in users:
            cnt += 1
            csvRow = []
            csvRow.append(user.id)       # user id
            csvRow.append(user.name)     # display name
            csvRow.append(user.username) # @username
            writer.writerow(csvRow)

print(f'ユーザー(@{UN})のフォロー{cnt}人の情報をファイル({FN})に出力しました。')

参考情報

Twitter Deverloper Portal
Tweepy ドキュメント
Tweepy Twitter API v2 リファレンス

  1. @TwitterDevによるツイート(2023/2/2)。その後(現在の)無料APIアクセスは2/13まで延長された。その後は1日最大1500ツイート等、なんらかの制限がかかる模様。

  2. 複数バージョンのPythonがインストールされている環境の事を考えるとpipコマンドよりもpythonコマンドを使用するのが望ましい。(参考ホームページ)

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
  3. You can use dark theme
What you can do with signing up
3