
こんにちは。現役医師のほしと(@hoshitodoctor)です。
最近、Pythonの勉強を始めてみました。
Progateの「Pythonコース」を終了した程度の知識で、ネットの情報を頼りに、
”twitterのいいねを自動化するツール”
を作ってみました。
等、超初心者の観点から、勉強記録の意味も兼ねて記載してみました。
私と同様にPythonを初めてみたばかりの人の参考になればと思います。
また、間違いや異なった解釈があればご指摘いただければ幸いです。
「twitterのいいねを自動化するツール」の作り方

それでは、
twitterのいいねを自動化するツールの作り方を
と順を追って説明していきます。
実際のコード
こちらがネットの情報を頼りに作成したコードです。
import tweepy
import schedule,time,datetime
def main():
CONSUMER_KEY="ここに取得した情報を入力"
CONSUMER_SECRET="ここに取得した情報を入力"
ACCESS_TOKEN="ここに取得した情報を入力"
ACCESS_SECERET="ここに取得した情報を入力"
auth=tweepy.OAuthHandler(CONSUMER_KEY,CONSUMER_SECRET)
auth.set_access_token(ACCESS_TOKEN,ACCESS_SECERET)
api=tweepy.API(auth)
q_list=["#ブログ初心者","#ブログ仲間募集","#ブログ書け"] #いいねしたいtweetのタグをいれる
count=10 #一度に何件いいねするか
for q in q_list:
print("『{}』を含むツイートを{}件いいねしています・・・".format(q, count))
search_results=api.search(q=q,count=count) #countの数だけ検索結果を表示
for status in search_results:
tweet_id=status.id
try:
api.create_favorite(tweet_id)
except:
pass
def job():
now=datetime.datetime.now()
main()
print("いいねが完了しました。日時:",now.strftime('%Y-%m-%d %H:%M:%S'))
schedule.every(60).minutes.do(job)
while True:
schedule.run_pending()
time.sleep(1)
こちらのコードは、twitterのAIPを用いています。
まずはその使い方について説明します。
twitter APIの使い方
twitter APIを取得することによって、自身の作ったプログラムから簡単にtwitterの種々の操作が可能になります。
これを取得することで、簡単にpython内でtwitterのフォローやいいねなどができるようになるわけです。
そのためには、twitter API登録をして、
- CONSUMER_KEY
- CONSUMER_SECRET
- ACCESS_TOKEN
- ACCESS_SECERET
の4つのキーを取得しなければなりません。
この方法については、こちらの記事にわかりやすく纏まっています。
→『Twitter API 登録 (アカウント申請方法) から承認されるまでの手順まとめ』
これらのキーを取得したら、コードの5〜8行目に代入しておきましょう。
各々のコードの持つ意味
1〜2行目

tweepy,schedule,time,datetimeの4つのモジュールをインポートします。
tweepyはtwittet APIを用いて様々なtwitter内の操作をするためのモジュールです。
5〜12行目

こちらはtwitter APIを使うために必要な設定です。
5〜8行目には自身で取得したAPIキーを入力してください。
10〜12行目は細かいことはわかりませんが、APIを使って自身のtwitterアカウントを操作するのに必要な設定と考えてください。
15〜16行目

15行目は「q_list」という名前のリストにいいねしたいツイートが含むハッシュタグを入れます。
好みのハッシュタグを、好きなだけ入れてみてください。
16行目は「count」という変数に、一度にいいねしたいツイートの件数を入れてください。
17〜19行目

17行目:先ほどの「q_list」の中から一つずつ変数qに代入します。
18行目:format文を使っています。最初の{}にはqに代入されたハッシュタグが、次の{}にはcountに代入された数字(今回は10としました)が入ります。
19行目:api.search(q=検索したいハッシュタグ, count=表示したいツイート数)とすることで、あるハッシュタグを含むツイートを好きな数取得することができます。
今回は、
q=q(右辺のqはq_listの中のハッシュタグ)
count=count(右辺のcountは今回の場合10)
とすることで、例えば #ブログ初心者 を含むツイートを10件取得しています。
それをsearch_resultsという変数に代入しています。
20〜25行目

20行目:先ほど取得した10件のツイートが代入されたsearch_resultsの中から一つずつ変数statusに代入します。
21行目:あるツイート+.idとすることでそのツイートのIDを取得することができます。それをtweet_idという変数に代入します。
23行目:api.create_favorite(ツイートID)でそのツイートIDを持つツイートをいいねすることができます。
32行目

32行目:60分毎に関数jobを実行するようライブラリに登録します。
このライブラリに登録されたjobは、schedule.run_pending()が実行された時に実行されます。
34-36行目でschedule.run_pending()を1秒おきに実行し続けることで、ライブラリに登録された60分おきのjobを実行することができます。
実際に実行すると・・・
実際にこのプログラムを実行するとコンソールには次のように表示されます。

このように、ツイートのいいねが1時間おきに行われているのが確認できます。
*使用の際は自己責任にてお願いします。
*何か間違いや解釈が異なる点があれば、コメントいただければ幸いです。
コメント