[Python] Twitter APIでフォローといいねを自動化

Python
スポンサーリンク

こんんちはーー

Pythonで特定のキーワードを呟いた人を検索して、 フォロワー数とフォロー数の差が閾値以下のアカウントだったらフォローといいねを実行するプログラムを作ったので記事にしました。

この記事が誰かの役に立てば幸いです。

※利用の仕方によってはTwitterの規約に違反する可能性があるので、実行する場合は自己責任でお願いします

スポンサーリンク

プログラム

まず、全プログラムを載せます。

import tweepy

# API
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 follow_fav(api):
    q="#プログラミング"
    count=5

    search_results = api.search(q=q, count=count)      #qのワードを含むツイートをcount回数検索する

    for result in search_results:                       #検索したツイート一つ一つに処理を実行する
        username = result.user._json['screen_name']     #ユーザーネームの取得
        user_id = result.id                             #idの取得
        user_followers = result.user.followers_count    #ユーザーのフォロワー数を取得
        user_friends = result.user.friends_count        #ユーザーのフォロー数を取得
        thre_follow = user_followers - user_friends     #フォロワーとフォロー数の差を取得

        if thre_follow < 100:                           #フォロワー数-フォロー数が100人以下に限定して処理
            try:
                api.create_friendship(username)         #フォロー
                api.create_favorite(user_id)            #"いいね"
                print(username)
            except Exception as e:
                print(e)   

#処理実行
if __name__ == '__main__':
    api, SCREEN_NAME = get_api()
    follow_fav(api)

詳細説明

Tweepy

tweepyをインポートします。

import tweepy

API

↓の関数でAPI取得を定義します。
****のところはAPIから取得します。

# API
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

フォローといいね

↓の関数でフォローといいね実行します。
q に検索したい文字を定義して、
countに検索数を定義します。

for文で検索したツイート一つ一つに処理を実行します。
今回はフォロワー数 – フォロー数が 100人以下に限定してフォローしたかったので、
if文を使っています。
ついでに ”いいね” も押すようにしました。

# 特定の文字をツイートした人を検索して、フォロワー数とフォロー数の差が閾値以下の場合にフォローといいね
def follow_fav(api):
    q="#プログラミング"
    count=5

    search_results = api.search(q=q, count=count)      #qのワードを含むツイートをcount回数検索する

    for result in search_results:                       #検索したツイート一つ一つに処理を実行する
        username = result.user._json['screen_name']     #ユーザーネームの取得
        user_id = result.id                             #idの取得
        user_followers = result.user.followers_count    #ユーザーのフォロワー数を取得
        user_friends = result.user.friends_count        #ユーザーのフォロー数を取得
        thre_follow = user_followers - user_friends     #フォロワーとフォロー数の差を取得

        if thre_follow < 100:                           #フォロワー数-フォロー数が100人以下に限定して処理
            try:
                api.create_friendship(username)         #フォロー
                api.create_favorite(user_id)            #"いいね"
                print(username)
            except Exception as e:
                print(e)   

処理実行

最後に定義した関数を実行するプログラムを書いて終わりです。

#処理実行
if __name__ == '__main__':
    api, SCREEN_NAME = get_api()
    follow_fav(api)

以上になります!!

コメント

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