友だちがTwitterをはじめたというのでアカウントを訊いたら「フォロワーが20万人いる某アカウントをフォローした」というヒントしかもらえなかったのでPythonで探すついでの備忘録。
スペック
- Windows10
- Python 3.6.5
TwitterAPIとTweepyを準備
TwitterAPIの準備
正直なところAPI使うのは初めてで合ってるのかわからないです。
https://developer.twitter.com/
ここから認証したりいろいろして、ようやく新しいアプリを作る段階に。
詳しいやり方は<ここ>みてください。
なんやかんやで
- API key
- API secret key
- Access token
- Access token secret
の4つを取得。
tweepyの準備
どうも調べたところPythonのライブラリであるTweepyを使うとフォロワーを一気に取得出来たりできなかったりするらしい。
コマンドプロンプトから早速Tweepyをインストール
$ pip install tweepy
$ python
$ import tweepy
で、何もエラーが出ないのでインストールができた模様
Pythonでプログラミング
フォロワーのID/名前/フォロー数/フォロワー数/登録日時/自己紹介をCSVで出力
import tweepy
import csv
target_id = "フォロワー数20万人の某アカウント"
CONSUMER_KEY = "取得したAPI key"
CONSUMER_SECRET = "取得したAPI secret key"
ACCESS_TOKEN = "取得したAccess token"
ACCESS_TOKEN_SECRET = "取得したAccess token secret"
auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_TOKEN, ACCESS_TOKEN_SECRET)
api = tweepy.API(auth ,wait_on_rate_limit = True)
followers_ids = tweepy.Cursor(api.followers_ids, id = target_id, cursor = -1).items()
followers_ids_list = []
for followers_id in followers_ids:
followers_ids_list.append(followers_id)
with open('CSVファイル名', 'a', newline="", encoding='utf-8_sig') as f:
writer = csv.writer(f)
for followerId in followers_ids_list:
followers_detail = []
user = api.get_user(followerId)
userid = user.screen_name
username = user.name
friend_num = str(user.friends_count)
follower_num = str(user.followers_count)
start_date = str(user.created_at)
descript = user.description
# recent_tweet = api.user_timeline(followerId)[0].text
followers_detail.extend([userid, username, friend_num, follower_num, start_date, descript])
writer.writerow(followers_detail)
ほぼコピペでいけると思います。
target_idのところにフォロワーを調べたいアカウントの@マーク以降を入れて、あとはAPI keyなどを入れればO.K.です。
CSVファイル名のところは
'C:\\Users\\hogehoge\\Desktop\\fuga.csv'
という感じになります。
コメントアウトされてるrecent_tweetは対象フォロワーが全員非鍵アカウントの場合のみ問題なく使えます。
既知の、そして、どうしたらいいかわからない不具合
対話シェルでこれをコピペして実行する分には動くんですが、コマンドプロンプトからpyファイルを実行しようとするとimportがうまくいかないって怒られるんですよねぇ……
既知の、そして、どうとでもなる不具合
凍結されたアカウントにぶち当たるとエラーで止まりました。
なんとでもなりそうなので放置します。
結果
CSVファイルの登録日時の並べ替えで新しいほうから見ていったらあっさり見つかりました。