こんにちは。
Pythonを使って便利ツールを作っています。
今回はTwitterのスクリプトを作成したので記事にしました。
相互フォローになってないアカウントを、フォローした日時が古い順にフォロー解除する方法を説明します。
この記事が誰かの役に立てば幸いです。
全プログラム
まずは全プログラムです
import tweepy import time def get_api(): keys = dict( screen_name = '*******', #自分のアカウント名 consumer_key = '********', #Twitter APIから取得 consumer_secret = '***********', #Twitter APIから取得 access_token = '***********', #Twitter APIから取得 access_token_secret = '***********', #Twitter APIから取得 ) 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[::-1]: #フォローしているアカウントを古い順に実行する if f not in followers: #フォロワーは除外する if unfollow_cnt <= 1: #フォロー解除する人数を決める api.destroy_friendship(f) #フォロー解除 time.sleep(2) #スパム認定されてないため処理時間に間隔を開ける unfollow_cnt += 1 else: print('処理完了') break return unfollow_cnt if __name__ == '__main__': api, SCREEN_NAME = get_api() followers = api.followers_ids(SCREEN_NAME) friends = api.friends_ids(SCREEN_NAME) unfollow(api, followers, friends)
プログラムの詳細説明
プログラムの詳細を説明します
importするモジュール
import tweepy import time
APIの取得
Pythonから操作するようにAPIを取得します
(*アスタリスク部分は、Twitterアカウント情報を入れてください )
def get_api(): keys = dict( screen_name = '*******', #自分のアカウント名 consumer_key = '********', #Twitter APIから取得 consumer_secret = '***********', #Twitter APIから取得 access_token = '***********', #Twitter APIから取得 access_token_secret = '***********', #Twitter APIから取得 ) 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
フォロー解除
friends[::-1]でフォローした日時が古い順に並べます。
if f not in followers:でフォロワーは除外
api.destroy_friendship(f) フォロー解除するコマンド
time.sleep(2) スパム認定されてないため処理時間に間隔を開けます
def unfollow(api, followers, friends): unfollow_cnt = 0 for f in friends[::-1]: #フォローしているアカウントを古い順に実行する if f not in followers: #フォロワーは除外する if unfollow_cnt <= 1: #フォロー解除する人数を決める api.destroy_friendship(f) #フォロー解除 time.sleep(2) #スパム認定されてないため処理時間に間隔を開ける unfollow_cnt += 1 else: print('処理完了') break return unfollow_cnt
関数実行
作成した関数を実行します。
if __name__ == '__main__': api, SCREEN_NAME = get_api() followers = api.followers_ids(SCREEN_NAME) friends = api.friends_ids(SCREEN_NAME) unfollow(api, followers, friends)
以上になります!!
コメント