pythonのライブラリにtweepyというものがあり簡単に自動フォローすることができます。ネット上にもたくさんコードが公開されているのでそれらを参考にコードを構築することができるでしょう。
tweepyを使うまでの準備
tweepyを使うにはtwitterアプリの登録が必要です。アプリの登録の際は申請が必要で、https://developer.twitter.com/en/appsから行うことができます。この記事ではツイッターのアプリ申請はすでにおわっているものとします。ちなみに「ツイッター アプリ 申請」などと検索すればいくらでもやり方がでてくると思います。
なぜツイッターの開発者登録でアプリ申請が必要なのかというとtweepyはtwitterAPIを使用するからです。twitterAPIを使用するためにはアクセストークンなどが必要となります。
- pythonのtweepyで簡単に自動フォローのスクリプトが作れる
- tweepyを使うためにはtwitterの開発者ページでアプリの申請を行う
- アプリ申請はtwitterのAPIを使うために必要
tweepyで自動フォローするスクリプト
さきほどものべましたが自動フォローのスクリプトはネット上に公開されています。
以下の2サイトで公開されているコードはほぼ同じものです。
【コード公開】【Python】twitter APIによるフォロー・アンフォロー自動化ツール
Tweepyで自動フォロー&ファボを実装し、Cronで定期実行
import tweepy import time def get_api(): keys = dict( screen_name = 'XXXXXXXXX', consumer_key = 'XXXXXXXXX', consumer_secret = 'XXXXXXXXX', access_token = 'XXXXXXXXX', access_token_secret = 'XXXXXXXXX', ) SCREEN_NAME = keys['screen_name'] CONSUMER_KEY = keys['consumer_key'] CONSUMER_SECRET = keys['consumer_secret'] ACCESS_TOKEN = keys['access_token'] ACCESS_TOKEN_SECRET = keys['access_token_secret'] auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET) auth.set_access_token(ACCESS_TOKEN, ACCESS_TOKEN_SECRET) api = tweepy.API(auth) return api, SCREEN_NAME def unfollow(api,followers, friends): unfollow_cnt = 0 for f in friends: if f not in followers: if unfollow_cnt <= 50: api.destroy_friendship(f) print("{0}のフォローを解除しました。".format(api.get_user(f).screen_name)) time.sleep(10) unfollow_cnt += 1 else: print('一度に解除可能な人数(50人)に達したため処理を中断します。') break return unfollow_cnt def follow(api, followers, friends): follow_cnt = 0 for followerId in followers: count=0 for friendId in friends: if followerId == friendId: break count += 1 if count == len(friends): try: api.create_friendship(followerId, True) print("ID:{0}をフォローしました。".format(api.get_user(followerId).screen_name)) time.sleep(10) follow_cnt += 1 except tweepy.error.TweepError: print('フォローが失敗しました。') return follow_cnt def yes_no_input(choice): while True: if choice in ['y', 'Y']: return True else: return False if __name__ == "__main__": u_cnt = 0 f_cnt = 0 api, SCREEN_NAME = get_api() followers = api.followers_ids(SCREEN_NAME) friends = api.friends_ids(SCREEN_NAME) choice = input("フォロー解除を実行しますか? [y/N]: ").lower() if yes_no_input(choice): u_cnt = unfollow(api, followers, friends) choice = input("フォローを実行しますか? [y/N]: ").lower() if yes_no_input(choice): f_cnt = follow(api, followers, friends) print('{}人をフォロー解除、{}人をフォローしました。'.format(u_cnt,f_cnt)) input()
このコードはネット上に公開されているコードですが、このコードのをみるとわかるのですが、自分のフォロワーをフォローするようになっています。もし特定ユーザーのフォロワーをフォローしたい場合はコードを編集する必要があります。
また、完全自動でフォローを行いたい場合、yes_no_input()関数はユーザーにフォロー、アンフォローを実行するかどうかをうながすものですが、これは不要です。ですのでここも編集する必要があるでしょう。
特定ユーザーのフォロワーをフォローする
特定ユーザーのフォロワーをフォローしたかった場合は以下のように編集すればいいと思われます。
if __name__ == "__main__": u_cnt = 0 f_cnt = 0 api, SCREEN_NAME = get_api() followers = api.followers_ids(SCREEN_NAME) friends = api.friends_ids(SCREEN_NAME) specificuser_followers = api.followers_ids('特定ユーザー') ''' choice = input("フォロー解除を実行しますか? [y/N]: ").lower() if yes_no_input(choice): u_cnt = unfollow(api, followers, friends) ''' ''' choice = input("フォローを実行しますか? [y/N]: ").lower() if yes_no_input(choice): f_cnt = follow(api, specificuser_followers, friends, 1) ''' f_cnt = follow(api, specificuser_followers, friends) print('{}人をフォロー解除、{}人をフォローしました。'.format(u_cnt,f_cnt))
api.followers_ids()で特定のユーザーを取得できますので、follow()関数の第二引数にspecificuser_followersをあててやればよいでしょう。またyes noは邪魔なのでユーザーが操作しなくて済むようにコメントアウトしています。unfollowもすぐには実行しなくてよいのでコメントアウトにしています。