
今回は以前作ったtwitterの予約投稿をPythonで行う方法を改造したツイッターに予約投稿するプログラムその2です。
今回はタスクスケジューラで予約した時間にツイートします。
実行するたびに投稿するテキストの参照ポイントをインクリメントさせます。
ツイッターへ予約投稿する前準備
予約投稿するデータを用意しておきます。
"投稿テスト その1" "投稿テスト その2" "投稿テスト その3" "投稿テスト その4"
といった内容のtwitter_post2.csvを予め作りPythonでcsvファイルを読み込む方法で読み込ませます。
またPythonでtxtファイルを読み書きする方法で記した通りにカウントするファイルを読み書きさせます。
ツイッターへ予約投稿するPythonのプログラム
from selenium import webdriver
from selenium.webdriver.support.select import Select
from selenium.webdriver.chrome.options import Options
import os
import csv
import time
#------------------------------------
#ユーザー名
UserDir="****"
#------------------------------------
#CSVファイル読み込み
cell=[]
f = open("twitter_post2.csv",'r', encoding="utf-8")
reader = csv.reader(f)
for row in reader:
ar=[]
for r in row:
ar.append(r)
cell.append(ar)
f.close()
print(cell)
#投稿済みカウントを読み込み
try:
f = open("twitter_count2.txt","r",encoding="utf-8")
count=int(f.read())
f.close()
except:
count=0
if count<len(cell):
#twitterに投稿
os.system("taskkill /F /IM chrome.exe")
options = webdriver.ChromeOptions()
pp=r"C:\\Users\\"+UserDir+"\\AppData\\Local\\Google\\Chrome\\User Data"
options.add_argument('--user-data-dir='+pp)
options.add_argument('--profile-directory=Default')
web=webdriver.Chrome(options=options)
web.get("https://twitter.com/home")
time.sleep(5)
el=web.find_element_by_class_name("notranslate")
el.send_keys(cell[count][0])
time.sleep(5)
el=web.find_element_by_xpath('//*[@data-testid="tweetButtonInline"]')
el.click()
#投稿カウントを記録
f = open("twitter_count2.txt","w",encoding="SHIFT-JIS")
count=count+1
f.write(str(count))
f.close()
time.sleep(5)
web.quit()
これを実行したら記録していた投稿済みカウント順に投稿されます。
投稿する物が無くなったら何もせずにプログラム終了です。
ツイッターへ予約投稿するタスクスケジューラの設定
タスクスケジューラを起動して予定した時間にツイッターに投稿するように設定します。
タスクスケジューラの起動は指定した時間にアプリを起動させるWindows10のタスクスケジューラ機能を参照
まず起動したらタスクを作成します。
全般

「全般」タグでタスクの名前を設定します。
操作

次に「操作」のタグで実行するプログラムを設定します。
「新規(N)…」ボタンを押すと新たにダイアログが出現するので、これの「プログラム/スクリプト(P):」の項目に
C:\Users\***\AppData\Local\Programs\Python\Python36\python.exe
のようなPythonがインストールしてあるフォルダ先のpython.exeまでのパスを入力します。
次に「引数の追加(オプション)(A):」の項目に
"C:\Users\***\Desktop\ツイッター投稿プログラム.py"
のようなツイッター投稿用のPythonファイルまでのパスを入力します。
そして「OK」ボタンを押して設定を確定します。
トリガー

最後に「トリガー」タグで実行する時間を指定します。
「新規(N)…」ボタンを押すと「新しいトリガー」のダイアログが表示されます。
「1回」「毎日」「毎週」「毎月」などの繰り返し実行したり遅延時間などの投稿タイミングのズレも指定できます。
都合が良い物を選んだら「OK」ボタンを押して設定を確定します。
投稿の回数を1日に何度も行いたい場合はこのトリガーを複数作成しておきましょう。
そして全ての設定が終わったら「タスクの作業」の「OK」ボタンを押せばタスクの完成です。
トリガーの所で指定した時間にツイッターへの投稿が開始されます。