プログラミング

【Python】twitterのいいねを自動化するツールの作り方

プログラミング

 

こんにちは。現役医師のほしと(@hoshitodoctor)です。

 

最近、Pythonの勉強を始めてみました。

Progateの「Pythonコース」を終了した程度の知識で、ネットの情報を頼りに、

”twitterのいいねを自動化するツール”

を作ってみました。

 

  • 実際に作ったコード
  • 各々のコードがどの様な意味を持つのか

 

等、超初心者の観点から、勉強記録の意味も兼ねて記載してみました。

私と同様にPythonを初めてみたばかりの人の参考になればと思います。

また、間違いや異なった解釈があればご指摘いただければ幸いです。

 

スポンサーリンク

「twitterのいいねを自動化するツール」の作り方

それでは、

twitterのいいねを自動化するツールの作り方を

  • 実際のコード紹介
  • twitter APIの使い方
  • 各々のコードの持つ意味

と順を追って説明していきます。

  

実際のコード

こちらがネットの情報を頼りに作成したコードです。

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時間おきに行われているのが確認できます。

  

*使用の際は自己責任にてお願いします。

*何か間違いや解釈が異なる点があれば、コメントいただければ幸いです。 

 

参考にしたサイト

コメント

タイトルとURLをコピーしました