#Python
Pythonの勉強として、今回はTwitterいいねbotを作ってみました。Pythonは豊富なライブラリをが揃っていますのでとても魅力的です。
#目的
Pythonのライブラリであるtweepyを使って、Twitterで自動いいねができるプログラムを作る。
#環境
- MacOS
- Python 3.8.0
- Tweepy(ライブラリ)
#Twitter API
まずTwitterAPIを使うために開発者の登録が必要です。登録は以下のURLから可能です。
https://developer.twitter.com/
登録手順に関しては、ここでは省略します。
今回の開発で必要なのは、consumer_key, consumer_secret_key, access_token_key, access_token_secret_key の4つです。登録手順は以下の記事を参考にするといいです。写真付きでわかりやすいです。
https://qiita.com/kngsym2018/items/2524d21455aac111cdee
#Tweepyをインストール
以下のコマンドでTweepyのインストールをおこなってください。
$ pip3 install tweepy
#コード
インストールが完了した後、コードを書くためのファイルを作成します。今回はtweepy
というディレクトリーを作成します。その中にtweet_liked.py
というファイルを作成し、以下のコードを書いてください。
import tweepy
import time
# consumer 第一引数に(consumer key) 第二引数に(consumer secret) #
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
# ACCESS_TOKEN_KEY 第一引数に(Access token) 第二引数に(Access token secret) #
auth.set_access_token(access_token_key, access_token_secret)
# wait_on_rate_limit = レート制限が補充されるのを自動的に待つかどうか #
# wait_on_rate_limit_notify = Tweepyがレート制限の補充を待っているときに通知を出力するかどうか #
api = tweepy.API(auth, wait_on_rate_limit=True, wait_on_rate_limit_notify=True)
# '#ブログ, #旅行'をそれぞれ3件ずついいね #
# 取得したいキーワード #
search_list = ['#ブログ', '#旅行']
# ツイート数3件 #
tweet_count = 3
for search in search_list:
print('Searching... {}' .format(search))
# サーチ結果 #
search_result = api.search(q=search, count=tweet_count)
for tweet in search_result:
tweet_id = tweet.id
try:
# いいねの処理 #
api.create_favorite(id=tweet_id)
print('Tweet_liked')
time.sleep(4)
except tweepy.TweepError as e:
print(e.reason)
except StopIteration:
break
##########################################################################
# いいねは24時間で1000件まで。1000件以上いいねをするとペナルティを受けます。 #
##########################################################################
#解説
###インポート
import tweepy
import time
まず、先ほどインストールしたtweepyと今回はtimeをインポートし有効化します。
###APIの設定
# CONSUMER 第一引数に(consumer key) 第二引数に(consumer secret) #
auth = tweepy.OAuthHandler('consumer_key', 'consumer_secret')
# ACCESS_TOKEN_KEY 第一引数に(Access token) 第二引数に(Access token secret) #
auth.set_access_token('access_token_key', 'access_token_secret')
# wait_on_rate_limit = レート制限が補充されるのを自動的に待つかどうか #
# wait_on_rate_limit_notify = Tweepyがレート制限の補充を待っているときに通知を出力するかどうか #
api = tweepy.API(auth, wait_on_rate_limit=True, wait_on_rate_limit_notify=True)
次にAPIを使用できるように設定します。
最初の2行は、開発者用アカウントの登録時に取得した4つのキー(consumer_key, consumer_secret_key, access_token_key, access_token_secret_key)をそれぞれ書き換えてください。
3行目は Twitterオブジェクトを生成しています。第2引数、第3引数は rate limits (アクセス制限)
についての設定です。Trueにすることで適用されます。
###自動いいね
# '#ブログ, #旅行'をそれぞれ3件ずついいね #
# 取得したいキーワード #
search_list = ['#ブログ', '#旅行']
# ツイート数3件 #
tweet_count = 3
for search in search_list:
print('Searching... {}' .format(search))
# サーチ結果 #
search_result = api.search(q=search, count=tweet_count)
for tweet in search_result:
tweet_id = tweet.id
try:
# いいねの処理 #
api.create_favorite(id=tweet_id)
print('Tweet_liked')
time.sleep(4)
except tweepy.TweepError as e:
print(e.reason)
except StopIteration:
break
最後がメインの部分です。
# 取得したいキーワード #
search_list = ['#ブログ', '#旅行']
# ツイート数3件 #
tweet_count = 3
まず、search_list = ['#ブログ', '#旅行']
のように取得したいキーワードをリストを使って、変数を指定します。tweet_count = 3
は今回取得したいツイート数です。
for search in search_list:
print('Searching... {}' .format(search))
# サーチ結果 #
search_result = api.search(q=search, count=tweet_count)
for tweet in search_result:
tweet_id = tweet.id
try:
# いいねの処理 #
api.create_favorite(id=tweet_id)
print('Tweet_liked')
time.sleep(4)
except tweepy.TweepError as e:
print(e.reason)
except StopIteration:
break
上記のコードの流れは、
- 変数
search_list
をfor文で繰り返し処理。 -
api.search(q=search, count=tweet_count)
のq=search
は取得したいキーワードを指定。count=tweet_count
は先ほど指定したツイート数を指定。 - 上記の結果を繰り返し処理。
- twitterのIDを取得し、それを使っていいねをする。
api.create_favorite(id=tweet_id)
がいいねをする処理 - いいねが成功すると、
Tweet_liked
と表示され、4秒後同じ処理を開始(時間をあけないと検知される可能性)。 - 2個目の繰り返し文が終わると1回目のfor文が実行され同じプロセスを開始。
except
の部分は処理が失敗した時にエラーメッセージが吐き出される処理です。
#実行結果
$ python tweet_liked.py
上記のコマンドを実行し。以下の結果が出れば成功です。あとは自分おTwitterの登録したアカウントでいいねがされているか確認してください。
Searching... #ブログ
Tweet_liked
Tweet_liked
Tweet_liked
Searching... #旅行
Tweet_liked
Tweet_liked
Tweet_liked
#注意
TwitterのAPIの使用には制限があります。それを超えてしまうと、ペナルティーを受けることになるので気をつけてください。
#まとめ
###プログラムの手順
- Twitterの開発者用に登録し4つのキーを取得
- tweepyをインストール
- TwitterのAPIを使うために4つのキーを使って設定 twitterオブジェクトも生成
- 自動いいねのプログラムを書く
今回は、いいねの自動化を実装しましたが、フォローの自動化やフォロー解除などいろいろ試すことができます。tweppyについて詳しく知りたい方は、以下のURLのドキュメント読んでみてください。
Pythonはスクレイピングで知られていると思いますが、Django
というフレームワークを使用すれば、 Webアプリケーションも作ることができます。
この記事をきっかけにPythonistaが増えてくれると嬉しいです。