twitter運用に力を入れている人は、一日に数時間、twitter運用に時間を取られてしまいますよね
クラウドワークスなどの案件を見ていると、SNS運用代理やSNS自動化ツールの作成などが多く並んでいます
全てを自動化してしまうと、人間味がないので、一部は自動化・一部はマニュアル、と使い分けるのがいいと思います
僕がpythonを使って作成したtwitter自動化ツールを使用すれば、インプレッション数やフォロワー数を増加させることに成功しました
今回は、twitter自動化ツールから、リツイートを行う方法を少し応用したコードを紹介していきたいと思います
pythonでtwitterを操作してみたい
pythonでtwitterのbotを作成したい
pythonでtwitterを自動化したい
といった方に向けて、書いていきます!
以下の記事では、pythonでtwitterを使う方法をまとめて解説しているので、参考にしてみてください
pythonでtwitterを扱えるようになると、twitterで行われている懸賞に自動で応募することができるようになります
Contents
pythonでtwitterを操作する
pythonでtwitterを操作するには、
- python-twitter
- TwitterAPI
- tweepy
- twython
などのライブラリを使用する必要があります
今回は「tweepy」を使って、pythonでtwitterを操作していきたいと思います
pythonでtwitterを使用するには、事前にtwitter APIの申請を通しておかないといけません
twitter APIの申請は年々厳しくなっていますが、僕が2022年に承認を受けた方法はこちら
tweepyについて
tweepyとはtwitter APIをpythonで簡単に操作するためのライブラリです
APIを使用しないで、twitterから情報を収集してこようとすると、スクレイピングの知識とかが必要になりますが、tweepyを使用することで、簡単に情報を収集することができます
- ツイートのID
- ツイートした時刻
- いいねされた数
- リツイートされた数
- ツイート内容
- ID
- ユーザー名
- アカウント名
- 自己紹介文
- フォロー数
- フォロワー数
- アカウント作成日時
- 自分がフォローしているか?
- アイコン画像のURL
- ヘッダー画像のURL
- WEBサイト
上記のデータはtweepyを使って簡単に収集することができます
さらに、収集したデータをcsvに保存したり、いいね数が100以上のものに限定したりと、さまざまなことが簡単にできます
詳細は以下の記事で解説していますので、合わせてお読みください
pythonでtwitter APIを利用してツイートを取得する【サンプルコードあり】
pythonを使ってツイートをリツイートする
ここからはpythonでtwitterを操作していきたいと思います
tweepyを使って、ツイートをリツイートするには、以下のコードです
api.retweet(tweet_id)
または
api.retweets(tweet_id[,count])
上記のコードでは指定したツイートの最初から100までリツイートを行います
count=○
でリツイートする数を調節することもできます
基本的には、for文を回してretweetしていくことが多いかなと思います
pythonでリツイートするサンプルコード
import tweepy
#Twitter情報。これは公開NG。
#********には自分自身のAPIキーなどを入力してください
consumer_key = '********'
consumer_secret = '********'
access_token = '********'
access_token_secret = '********'
#Twitterの認証
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)
# 指定した条件(検索ワード、検索件数)に一致するユーザ情報を取得
search_results = api.search_tweets(q="", result_type="mixed",count=20)
for result in search_results:
tweet_id = result.id #Tweetのidを取得
user_name = result.user._json['screen_name'] #ユーザーのidを取得
user_id= result.user._json['id']
try:
api.retweet(tweet_id) #リツイートする
except Exception as e:
print(e)
「q=””」の中に特定のキーワードを入力することで、そのキーワードについてツイートしているツイートをリツイートしていくことができます
今回はcountで20件、リツイートするようにしています
リツイートの応用
24時間稼働させておくことで、キーワードが含まれるツイートがツイートされた場合に、リアルタイムでリツイートすることも可能です
また、特定のアカウントのタイムラインを監視して、変化があった場合に最新のツイートをリツイートする、といったことも可能です
ただし、twitter運用を行なっていく上で、あまりにも早すぎるリツイートや毎回同じようにリツイートをしていると、bot感が出てしまいます
そこで、該当のツイート時刻と現在時刻をマッチさせ、同じであった場合には、waitの時間を作る、といった可能です
以下がサンプルコードです
サンプルコードでは、if分の分岐をリツイートではなく、いいねにして、違いがわかるようにしています
import tweepy
import time
from datetime import datetime,timezone
import pytz
#関数: UTCをJSTに変換する
dt=datetime.now()
time_str=dt.strftime("%Y-%m-%d_%H:%M:%S")
print(time_str)
def change_time_JST(u_time):
#イギリスのtimezoneを設定するために再定義する
utc_time = datetime(u_time.year, u_time.month,u_time.day, \
u_time.hour,u_time.minute,u_time.second, tzinfo=timezone.utc)
#タイムゾーンを日本時刻に変換
jst_time = utc_time.astimezone(pytz.timezone("Asia/Tokyo"))
# 文字列で返す
str_time = jst_time.strftime("%Y-%m-%d_%H:%M:%S")
return str_time
consumer_key = '********'
consumer_secret = '********'
access_token = '********'
access_token_secret = '********'
auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_TOKEN, ACCESS_SECRET)
api = tweepy.API(auth)
#該当するアカウントの@からを入力する
#countで取得するツイート数を設定
for status in api.user_timeline(screen_name="",count=2):
tweet_time=change_time_JST(status.created_at)
#もしツイート時刻と現在時刻が一致したら、3秒間待ってからリツイートする
#それ以外の場合には、いいねをする
if tweet_time == time_str:
time.sleep(3)
api.retweet(status.id)
else:
api.create_favorite(status.id)
リツイートやいいねをしたい対象アカウントを増やし、リストにすることで、たくさんのアカウントのツイートをリツイートしたり、いいねすることができます
pythonの知識・技術を上げたい
pythonの知識・技術を上げて、手っ取り早く収益を上げたい
と思っている方が大半かと思います
僕はpythonを初めて10ヶ月で収益5桁を突破しました
突破した方法は以下の記事で解説していますが、もっと早く収益を出すならばスクールに通うのが一番です
おすすめプログラミングスクール(無料体験あり)