Help us understand the problem. What is going on with this article?

【Python】Twitterでいいねを自動化

More than 1 year has passed since last update.

やったこと

Pythonで特定のツイートをしたユーザーを1時間おきに自動いいねします。今回は

progate
駆け出しエンジニアと繋がりたい
#ブログ書け

のキーワードをtwitterで検索し、それぞれ最新の50件を自動いいねします。

結果

最終的にAutoprogram.pyをターミナル上で実行すると、スリープしない限り1時間ごとに「自動いいね」を実行します。実行時間と検索クエリをログとしてターミナルに表示します。

$ python3 Autoprogram.py
Now:QUERY-->>progate
Now:QUERY-->>#駆け出しエンジニアと繋がりたい
Now:QUERY-->>#ブログ書け
<<DONE>> 2018-12-28 09:06:33
Now:QUERY-->>progate
Now:QUERY-->>#駆け出しエンジニアと繋がりたい
Now:QUERY-->>#ブログ書け
<<DONE>> 2018-12-28 10:07:13
Now:QUERY-->>progate
Now:QUERY-->>#駆け出しエンジニアと繋がりたい
Now:QUERY-->>#ブログ書け
<<DONE>> 2018-12-28 11:07:50
Now:QUERY-->>progate
Now:QUERY-->>#駆け出しエンジニアと繋がりたい
Now:QUERY-->>#ブログ書け
<<DONE>> 2018-12-28 12:09:31
Now:QUERY-->>progate
Now:QUERY-->>#駆け出しエンジニアと繋がりたい
Now:QUERY-->>#ブログ書け
<<DONE>> 2018-12-28 13:10:08
Now:QUERY-->>progate
Now:QUERY-->>#駆け出しエンジニアと繋がりたい
Now:QUERY-->>#ブログ書け
<<DONE>> 2018-12-28 14:10:47

準備

まず、twitterのAPIを使いますので、APIの認証とtweepyのインストールをして下さい。

【参考】
Twitter API 登録 (アカウント申請方法) から承認されるまでの手順まとめ ※2018年9月時点の情報

tweepyは普通にpipでサクッと。

$ pip3 install tweepy
successなんちゃらが出たらimportしてエラーが出ないことを確認
$ python3
>>> import tweepy
>>> 

twitter_autoFavorite.py

自動いいねのコードです。
【参考】
Python Twitter APIでいいねとフォローを自動化する

APIの認証で取得した

API key
API secret key
Access token
Access token secret

をそれぞれセットして、tweepyを使って認証します。ここは脳死でOKです。

twitter_autoFavorite.py
CONSUMER_KEY="API key"
CONSUMER_SECRET="API secret key"
ACCESS_TOKEN="Access token"
ACCESS_SECERET="Access token secret"

auth=tweepy.OAuthHandler(CONSUMER_KEY,CONSUMER_SECRET)
auth.set_access_token(ACCESS_TOKEN,ACCESS_SECERET)
api=tweepy.API(auth)

APIにクエリを投げツイートを取得し、いいねします。

twitter_autoFavorite.py
q_list=["progate","#駆け出しエンジニアと繋がりたい","#ブログ書け"]
count=50#取得するツイート数
for q in q_list:
    print("Now:QUERY-->>{}".format(q))
    search_results=api.search(q=q,count=count)#ツイートのデータであるstatusオブジェクトを取得
    for status in search_results:
        tweet_id=status.id#ツイートidにアクセス
        try:
            api.create_favorite(tweet_id)#ファボ
        except:
            pass

後ほど自動実行するプログラムにimportするので、最終的なプログラムはこちらになります。

twitter_autoFavorite.py
import tweepy

def main():
    CONSUMER_KEY="API key"
    CONSUMER_SECRET="API secret key"
    ACCESS_TOKEN="Access token"
    ACCESS_SECERET="Access token secret"

    auth=tweepy.OAuthHandler(CONSUMER_KEY,CONSUMER_SECRET)
    auth.set_access_token(ACCESS_TOKEN,ACCESS_SECERET)
    api=tweepy.API(auth)


    q_list=["progate","#駆け出しエンジニアと繋がりたい","#ブログ書け"]
    count=50
    for q in q_list:
        print("Now:QUERY-->>{}".format(q))
        search_results=api.search(q=q,count=count)
        for status in search_results:
            tweet_id=status.id
            try:
                api.create_favorite(tweet_id)
            except:
                pass

if __name__ == '__main__':
    main()

Autoprogram.py

次に1時間ごとに自動実行するプログラムです。モジュールは
schedule time datetime
を使います。

Autoprogram.py
import twitter_autoFavorite
import schedule,time,datetime

def job():
    now=datetime.datetime.now()
    twitter_autoFavorite.main()
    print("<<DONE>>",now.strftime('%Y-%m-%d %H:%M:%S'))

schedule.every(60).minutes.do(job)

while True:
    schedule.run_pending()
    time.sleep(1)

1時間ごとに自動実行したいプログラムを別に作っておいて、これにimportすると全て実行できるようにしとくと便利かもしれませんね。

kaka__non
BtoCの機械設計してます
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした