はじめに
今回はscheduleモジュールを使用して, Twitterにて定期的な処理を自動的に実行できるようにしていきます.
#scheduleモジュール
まずは, インストールしましょう.
pip install schedule
公式ドキュメントを参考にして使い方を確認しましょう.
import schedule
import time
# 実行したい処理
def job():
print("I'm working...")
# 10分ごと
schedule.every(10).minutes.do(job)
# 1時間ごと
schedule.every().hour.do(job)
# 毎日10:30
schedule.every().day.at("10:30").do(job)
# 毎週月曜日
schedule.every().monday.do(job)
# 毎週水曜13:15
schedule.every().wednesday.at("13:15").do(job)
# 毎時17分
schedule.every().minute.at(":17").do(job)
while True:
schedule.run_pending()
time.sleep(1)
まずはjob()関数の中で実行したい処理を設定します.
def job():
print("I'm working...")
そしてschedule.every()で実行したいjobをライブラリに登録します.
様々な時間単位で登録できるようですね.
# 10分ごと
schedule.every(10).minutes.do(job)
# 1時間ごと
schedule.every().hour.do(job)
# 毎日10:30
schedule.every().day.at("10:30").do(job)
# 毎週月曜日
schedule.every().monday.do(job)
# 毎週水曜13:15
schedule.every().wednesday.at("13:15").do(job)
# 毎時17分
schedule.every().minute.at(":17").do(job)
最後にschedule.run_pending()で登録したjobを実行しています. 1度の呼び出しで1度実行するので, while分でループさせて呼び出しています.
while True:
schedule.run_pending()
time.sleep(1)
#Twitterで定期的に検索andいいね
それではscheduleモジュールを用いて, Twitterの定期的な検索といいねを実装しましょう.
今回は6時間ごとに「大谷翔平」と検索して, いいねをするという仕様にしています.
Twitterの検索といいねに関しては, こちらを参照してください.
# coding: utf-8
import tweepy
import time
import schedule
# 先ほど取得した各種キーを代入する
CK="Consumer Key"
CS="Consumer Secret"
AT="Access Token"
AS="Access Token Secret"
# Twitterオブジェクトの生成
auth = tweepy.OAuthHandler(CK, CS)
auth.set_access_token(AT, AS)
api = tweepy.API(auth)
# 処理関数
def job():
# 1ツイートずつループ
for status in api.search(q='大谷翔平', count=50):
tweet_id = status.id
# 例外処理をする
try:
# いいね実行
api.create_favorite(tweet_id)
except:
print('error')
def main():
# 6時間ごと
schedule.every(6).hours.do(job)
while True:
schedule.run_pending()
time.sleep(1)
main()