[Python × Twitter] 相互フォローになってないアカウントのフォローを解除する(フォローした日時が古い順にフォロー解除する)

Python
スポンサーリンク

こんにちは。

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)

以上になります!!

コメント

タイトルとURLをコピーしました