Python
tweepy

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


やったこと

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すると全て実行できるようにしとくと便利かもしれませんね。