LoginSignup
8
5

More than 5 years have passed since last update.

Tweepyで20万人のフォロワーに埋もれた友達をさがす

Posted at

友だちが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で出力

findMyFriend.py
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ファイルの登録日時の並べ替えで新しいほうから見ていったらあっさり見つかりました。

8
5
0

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
8
5