TwitterAPIを使って特定キーワードのツイート「いいね30」以上を自動リツイート(Pythonコードあり)
こんにちは。
本日はTwitterAPIのアップデート内容を紹介します。
運用しているTwitter botくんはこちらです。
こちらのアカウントは製造業コミュニティのメンバーと共有で運用しているアカウントでTwitterAPIを利用してPythonで自動化しています。
Twitter botの作り方は下記の記事に詳しく書きましたので、興味ある方は挑戦してみてください。
このTwitterアカウントは以下のような流れで自動投稿されています。
1.エコおじいさんとこーしさんのツイートでいいね数30以上のツイートをGoogleスプレッドシートに転記
※ついでにそのツイートはリツイートするようにしています。
2.Googleスプレッドシートに転記したツイートを1日1回ランダムにツイートする
今回は、上記機能に以下の機能を追加します。
・特定のキーワードのツイートの取得
・特定の日のいいね数30以上に絞ってリツイート
特定のキーワードのツイートの取得
製造業関連なので以下のキーワードのツイート取得を行います。
・製造業
・メーカー界隈
特定の日のいいね数30以上に絞ってリツイート
特定の日とは「3日前」としています。
その中で「製造業」「メーカー界隈」のキーワードで引っかかったツイートでいいね数30超えていたらリツイートします。
以上の事を、1日1回heokurの自動投稿で行います。
Pythonコード
Pythonコードと同じフォルダ内に「.env」ファイルを用意して以下のようにTwitterAPIとスプレッドシートの利用に必要なキーを書きます。
CONSUMER_KEY=***************************************
CONSUMER_SECRET=***************************************
ACCESS_KEY=***************************************
ACCESS_KEY_SECRET=***************************************
Pythonの全体のコードを以下です。
# 必要なモジュールのimport
from datetime import datetime, timedelta
import tweepy
from dotenv import find_dotenv, load_dotenv
import os
import time
env_file = find_dotenv()
load_dotenv(env_file) # .envファイルを探して読み込む
CONSUMER_KEY = os.environ.get('CONSUMER_KEY')
CONSUMER_SECRET = os.environ.get('CONSUMER_SECRET')
ACCESS_KEY = os.environ.get('ACCESS_KEY')
ACCESS_KEY_SECRET = os.environ.get('ACCESS_KEY_SECRET')
# 認証のためのAPIキーをセット
auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_KEY, ACCESS_KEY_SECRET)
api = tweepy.API(auth)
'''
ツイート情報を特定のキーワードで、期間を指定して収集
取得できるデータは1週間以内のデータだけ
リツイート数+いいね数の合計でツイートを絞り込める
'''
retweet_count = 5
favcount = 30
delta_t = 3
num = 500
#1日のツイートの取得(いいね数の選別)
nowadays = datetime.now()
since = (nowadays - timedelta(delta_t)).strftime('%Y-%m-%d')
# 検索キーワードの設定、 リツイートは除く
searchkey_list = ['製造業','メーカー界隈']
for searchkey in searchkey_list:
# ツイートデータ取得部分
# tweepy.CursorのAPIのキーワードサーチを使用(api.search)
# qがキーワード, sinceがいつから, untilがいつまで, tweet_modeでつぶやきの省略ありなし, langで言語, .itemes(数)と書いてツイート数を指定
tweets = tweepy.Cursor(api.search, q=searchkey, since=since, untile=nowadays, tweet_mode='extended', lang='ja').items(num)
for tweet in tweets:
if tweet.favorite_count >= favcount and not 'RT @' in tweet.full_text[:4] and searchkey in tweet.full_text: # fav50以上(リツイート除く)のツイートをリツイート
try:
api.retweet(tweet.id)
print(tweet.full_text, tweet.favorite_count)
print(30*"=")
time.sleep(3)
except:
pass
短いコードなので関数やクラスを全く使っていないシンプルなコードです。
これでGoogleスプレッドシートのツイートの自動投稿と特定のキーワードのリツイートもできていますね。
ついでにネガポジ分析をして引用リツイートもしたいな。
ネガポジ分析とは発言内容がネガティブかポジティブかを分析することです。ツイート内容を品詞分解して、あらかじめ用意しておいたネガティブな単語のリストと比較することで、ツイート内容のネガティブ度合いを測るものです。
こういった機能は、自作botだからこそカスタマイズの自由度があってできるものですよね🤗
Twitter➡@t_kun_kamakiri
Instagram➡kamakiri1225
youtube➡https://www.youtube.com/channel/UCbG6_Q9ZRqqVT6YZOpcjDlQ
ブログ➡宇宙に入ったカマキリ(物理ブログ)
ココナラ➡物理の質問サポートサービス
コミュニティ➡製造業ブロガー