【30分タイムアタック】Python×Twitter フォロバ自動化
せっかくSNS始めたので、
なるべく輪を広げたい
だけど、あまり時間かけたくない
自動化して楽したいなってことで
Pythonで検索するとすぐに出てくる
Twitterの自動化シリーズですね
今日のコードは
いちいちフォロワーみて、
「あ、この人フォロー返すの気づかなかった」とかいうのを
コマンド実行だけで、勝手にやってくれるやつです
ゴール
$ Python AutoFollowBack.py
これ実行したら、フォロワー全員自動でフォロバしてくれる感じ
手順
- 1.follower_idを取得
- 2.follow_idを取得
- 3.not_followed_user_idを算出
- 4.for文で回して、1人ずつ自動フォローする
1. follower_id(自分をフォローしてくれている人)を取得
follower_id = api.followers_ids()
2. follow_id(自分がフォローしている人)を取得
follow_id = api.friends_ids()
3. not_followed_user_id(フォローされているけど、自分がフォローしていない人)を算出
手順1と2の和集合を求める
そこから、フォローしてる人を除外する
フォローできていない人が算出できる
not_followed_user_id = set(follower_id + follow_id) ^ set(follow_id)
4. for文で回して、1人ずつ自動フォローする
あとは、フォローできていない人をフォローする処理だけですね
コード
import tweepy import sys import TwitterAuth api = TwitterAuth.getTwitterApi() follower_id = api.followers_ids() follow_id = api.friends_ids() not_followed_user_id = set(follower_id + follow_id) ^ set(follow_id) number_of_followed = 0 for user_id in not_followed_user_id: try: api.create_friendship(user_id) number_of_followed += 1 except Exception as e: print(e) print('number_of_followed : {}'.format(number_of_followed))
※最後に確認のため、フォローした人数出力してます
ちなみに、
import TwitterAuth api = TwitterAuth.getTwitterApi()
ここは、API取得するところをモジュール化してます
おまけ
同様にして、 not_follow_me_user_id(フォローしてるのにフォローしてくれていない人)は 和集合から、手順1のフォローしてくれている人を除外すればいいですね
not_follow_me_user_id = set(follower_id + follow_id) ^ set(follower_id)
最初からfor文回して、1人ずつフォローしているかどうか判定して
フォローしていなければフォローするっていうコード公開している人いるけど
そもそも2つの集合のどちらの数が多いかわからないのに、
forのなかにforいれていくのは、危険じゃないかな・・・
追記
tweepyのコードスニペット見返してたら、
こんなのあった
for follower in tweepy.Cursor(api.followers).items(): follower.follow()
これでも全員フォローできるみたい