こんんちはーー
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)
以上になります!!
コメント