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もすぐには実行しなくてよいのでコメントアウトにしています。

コメント