Python初心者がTwitterのタイムラインから単語検索してリストにメンバー追加してみた話【2020】
TIP
今回はTwitter自動化シリーズの記事となります。ファボ、フォロー、リスト追加を一気に行うことに成功しました!
WARNING
目次
ここから本題
1. 前回までのあらすじ
これまでTwitterAPI、Tweepyを用いてのリツイート、リスト追加の自動化に挑戦し、見事成功しました! やったね!
以降、APIの登録とかconfigファイルの作成は終わっている前提でお話しします。分からない方は下のリンクから遡ってもらえれば分かると思います!
2. はじめに
今回はいろいろと合わせ技に挑戦してみました。これまではただのマネっ子だったので、少しだけ応用に近づいた・・・かも?
単語検索をして、検索に引っかかったツイートをふぁぼ、ツイート主をフォロー、リストに追加という三種を自動化してみました。
3. ソースコード紹介
#coding:utf-8
import config
import tweepy
# Accesss Token Secert
CK = config.CONSUMER_KEY
CS = config.CONSUMER_SECRET
AT = config.ACCESS_TOKEN
ATS = config.ACCESS_TOKEN_SECRET
auth = tweepy.OAuthHandler(CK, CS)
auth.set_access_token(AT, ATS)
api = tweepy.API(auth)
query = "わたモテ"
search_count = 100
search_results = api.search(q=query, count=search_count)
for result in search_results:
userid = result.user.id
username = result.user.name
tweet = result.text
tweetid = result.id
print("--------------------------------------------------")
print("名前:"+username)
print("ツイート:")
print(tweet)
print("--------------------------------------------------")
try:
api.create_favorite(tweetid)
print("上のツイートをふぁぼりましたよ、ご主人様。")
api.add_list_member(user_id=userid, slug="list2", owner_screen_name="nahamot") #listにそのツイートのユーザ名を追加する
print(username+"をわたモテリストに追加させて頂きました。")
api.create_friendship(userid)
print(username+"をフォローさせて頂きました。")
except:
print(username+"ファボ、リスト追加、フォローのいずれかに異常があるかもしれません、ご主人様ァ!?")
4. 内容をざっくり解説
文章がきもいのは仕様です。ちょっとふざけてみただけなの! AIさんと会話してる気分になれるでしょ! 気分だけで自分が打ってるんですけど・・・
ざっくり解説していきます。→の右側が説明で、以下とか言ってるのはまとめて解説してます。
coding:utf-8
→ UTF-8でコーディングしますよ。
import config
→ コンフィグファイル呼び出し。 import tweepy
→ つうぃーぴぃ呼び出し。
以下、まとめて。コンフィグのキーを各文字列に入れ、API利用できるよう OAuthHandler に各キーを入れる。
CK = config.CONSUMER_KEY
CS = config.CONSUMER_SECRET
AT = config.ACCESS_TOKEN
ATS = config.ACCESS_TOKEN_SECRET
auth = tweepy.OAuthHandler(CK, CS)
auth.set_access_token(AT, ATS)
api = tweepy.API(auth)
query = "わたモテ"
→ 検索したい単語の設定 search_count = 100
→ 検索する数(上限100) search_results = api.search(q=query, count=search_count)
→ いざ検索ッ!!
for result in search_results:
→ 検索単語をfor文で個別で取り出す。 userid = result.user.id
→ 検索単語を呟いたユーザーのid(数字)を取り出し。 username = result.user.name
→ 検索単語を呟いたユーザー名の取り出し。 tweet = result.text
→ 検索に引っかかったツイートの取り出し。 tweetid = result.id
→ 検索に引っかかったツイートid (数字) の取り出し
以下、いい感じにユーザー名とツイートをコマンドプロンプトに表示。
print("--------------------------------------------------")
print("名前:"+username)
print("ツイート:")
print(tweet)
print("--------------------------------------------------")
以下、検索したツイート(id指定)にふぁぼ。ふぁぼったことの表示してます。
try:
api.create_favorite(tweetid)
print("上のツイートをふぁぼりましたよ、ご主人様。")
以下、リスト追加。スラグ (リスト名ではありません) に関しては、一度リストの情報を確認してからじゃないと分からないかもです。リスト情報の確認については、また解説します。
api.add_list_member(user_id=userid, slug="list2",
owner_screen_name="nahamot") #listにそのツイートのユーザ名を追加する
print(username+"をわたモテリストに追加させて頂きました。")
以下、ツイート主をフォロー(ユーザーid指定)
api.create_friendship(userid)
print(username+"をフォローさせて頂きました。")
以下、例外処置。すでにファボ、リスト追加、フォローなどしているとtry以下が実行できない場合があると考えて表示するのはこんな感じの文章にしています。
except:
print(username+"ファボ、リスト追加、フォローのいずれかに異常があるかもしれません、ご主人様ァ!?")
5. まとめ
今回はある単語を検索して、ファボ、リスト追加、フォローを同時に行うプログラムを作成してみました。
これの使い道なんですが、コード内にある通り、わたモテファンをフォローしてそのままわたモテリストにぶち込むときに使います。
わたモテじゃなくても、あなたが好きな単語に関連するユーザーを検索、フォロー、リスト追加できちゃうんです。
リスト作成まで自動化しても良いんですが、何回も行うことを考えるとリスト作成に関しては別ファイルで実行した方が良さげ。
あと、リスト追加はAPI制限に引っかかりやすいのでご利用は計画的に。凍結されても一切の責任を負いません。
それでは今回はこの辺で締めとします。
ここまで読んでいただき、ありがとうございました!