『投稿内容をまとめたExcelファイルから定期的にツイートしたい。』
そのほかにも
『自動でフォローバックしたい。』
『あのアカウントでツイートされたテキストを抽出したい。』
そんな悩みがPythonを使えばほんの一瞬で解決できます。
Pythonでtwitterを自動運用する準備
PythonでTwitterを操作するには『tweepy』といったモジュールのインストールと
TwitterAPIの承認をもらう必要があります。
以下の手順で解説します。
Pythonでtwitterを使う準備
- Pythonでtwitterを使うためにtwitterAPIの承認を受ける
- tweepyのインストール
手順1:Pythonでtwitterを使うためにTwitterAPIの承認を受ける
TwitterAPIの使用申請をしないとPythonでTwitterを操作できません。
申請方法を下の記事で紹介しているので、参考にしてください。
-
【Twitter自動運用必須】TwitterAPIの申請方法
続きを見る
手順2:tweepyのインストール
TwitterAPIを取得したら、モジュールをインストールしましょう。
pip install tweepy
pip install tweepy
でインストールできます。
Pythonでtwitterを運用する【コード紹介】
PythonでTwitterを運用する準備は整ったので、
次は以下の内容でコードを紹介します。
コード紹介
- ①Pythonで『ツイート』する方法
- ②Pythonで『自動フォロー』する方法
- ③Pythonで『ツイートを抽出』する方法
①Pythonで『ツイート』する方法
import tweepy
# KEY指定
CK="TwitterAPI登録申請して取得したConsumer_keyを入力してください"
CS="TwitterAPI登録申請して取得したConsumer_secretを入力してください"
AT="TwitterAPI登録申請して取得したAccess_tokenを入力してください"
AS="TwitterAPI登録申請して取得したAccess_secretを入力してください"
# tweepyの設定
auth = tweepy.OAuthHandler(CK, CS)
auth.set_access_token(AT, AS)
api = tweepy.API(auth)
# ツイートを実行
api.update_status("テスト")
CK
、CS
、AT
、AS
はTwitterAPI利用申請して取得した値を入力してください。
※下の記事で紹介しているAPI KEY
はCK
、
API KEY SECRET
はCS
を指しています。
-
【Twitter自動運用必須】TwitterAPIの申請方法
続きを見る
api.update_status("テスト")
でツイートする内容を記載するだけなんで
めちゃくちゃ簡単です。
投稿内容をまとめたExcelファイルからツイートなんてことも出来ちゃいます。
参考としてコードを紹介します。
import openpyxl
import tweepy
# KEY指定
CK="TwitterAPI登録申請して取得したConsumer_keyを入力してください"
CS="TwitterAPI登録申請して取得したConsumer_secretを入力してください"
AT="TwitterAPI登録申請して取得したAccess_tokenを入力してください"
AS="TwitterAPI登録申請して取得したAccess_secretを入力してください"
# tweepyの設定
auth = tweepy.OAuthHandler(CK, CS)
auth.set_access_token(AT, AS)
api = tweepy.API(auth)
directry='C:/Document/'
# ブック取得
wb = openpyxl.load_workbook(directry+'Twitter.xlsx', data_only=True)
# シートを取得
sheet_Twitter = wb.get_sheet_by_name('Sheet1')
# セルを取得
tweet=(sheet_Twitter.cell(row=1, column=1).value)# 1行1列目の値を取得
print(tweet)
api.update_status(status=tweet.replace("\\n","\n"))
PythonでExcelファイルを読み込む方法は下の記事を参考にしてください。
-
【OpenPyXL】PythonでExcelを自動操作する方法
続きを見る
エクセルファイルに\n
と記述すると改行されます。
※エクセルファイル上では¥n
と表示されます。
しかし、Pythonで\n
を読み込むと改行コードの\n
ではなく、
文字列\\n
のとして認識されてます。
なのでreplace("\\n","\n")
で\\n
を\n
に変換することで
正しく改行できます。
②Pythonで『自動フォロー』する方法
コード全体を紹介します。
import tweepy
# KEY指定
CK="TwitterAPI登録申請して取得したConsumer_keyを入力してください"
CS="TwitterAPI登録申請して取得したConsumer_secretを入力してください"
AT="TwitterAPI登録申請して取得したAccess_tokenを入力してください"
AS="TwitterAPI登録申請して取得したAccess_secretを入力してください"
# tweepyの設定
auth = tweepy.OAuthHandler(CK, CS)
auth.set_access_token(AT, AS)
api = tweepy.API(auth)
# フォロワーを新しい順で10件取得。
flist= api.get_follower_ids(count=10)
for f in range(len(flist)):
api.create_friendship(user_id=flist[f])
# フォロワーを新しい順で10件取得。
flist= api.get_follower_ids(count=10)
まずはフォロワーのIDを取得します。
count
を大きくしすぎるとTwitterのサーバーに負荷を掛けることになります。
最悪の場合アカウント制限や凍結の可能性があるので、注意しましょう。
※count
は10~15ぐらいが適切と思います。
for f in range(len(flist)):
api.create_friendship(user_id=flist[f])
取得したIDはリスト化されてるので、for
文を使ってリスト内の要素を取得してフォローしています。
③Pythonで『ツイートを抽出』する方法
import tweepy
# KEY指定
CK="TwitterAPI登録申請して取得したConsumer_keyを入力してください"
CS="TwitterAPI登録申請して取得したConsumer_secretを入力してください"
AT="TwitterAPI登録申請して取得したAccess_tokenを入力してください"
AS="TwitterAPI登録申請して取得したAccess_secretを入力してください"
# tweepyの設定
auth = tweepy.OAuthHandler(CK, CS)
auth.set_access_token(AT, AS)
api = tweepy.API(auth)
# ツイート取得
pages = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
# pages = list(range(1, 21))と記載しても大丈夫です。
# 設定
account=("メカタナ | エンジニア投資家") #アカウント名
twitter_id=("mekatanamaya") #id
print(account)
print(twitter_id)
# ツイート取得
for page in pages:
results = api.user_timeline(screen_name=twitter_id, count=200, page=page)
for r in results:
if "@" in r.text:
continue
else:
data.append(r.text)
print(data)
# ツイート取得
pages = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
# pages = list(range(1, 21))と記載しても大丈夫です。
後で解説しますが、api.user_timeline
というメソッドを使用して
ツイート内容を取得します。
しかし、取得上限が200なのでpage
の値を増やすことで
200×page
数のツイートを取得できます。
なので、pages
は1から20のpage
を作成すると宣言しています。
※list(range(1, 21))
でも1から20のpage
を作成できます。
# 設定
account=("メカタナ | エンジニア投資家") #アカウント名
twitter_id=("mekatanamaya") #id
ツイッターのアカウント名とIDを設定します。
上の画像のようにアカウント名と@以降のIDを記述して下さい。
# ツイート取得
for page in pages:
results = api.user_timeline(screen_name=twitter_id, count=200, page=page)
for r in results:
if "@" in r.text:
continue
else:
data.append(r.text)
print(data)
for page in pages:
では最初に宣言したpages
の数だけ同じ処理を繰り返します。
results = api.user_timeline(screen_name=twitter_id, count=200, page=page)
ではpage
ごとに200
ツイートをtwitter_id
から取得します。
次のfor r in results:
はツイート文をdata
に格納していますが@
がついたメンションを省いています。
print(data)
で結果が表示されるはずなので、
最終的にはエクセルで保存してもいいかもしれませんね。
下の記事を参考にエクセルに保存してしてみて下さい。
-
【OpenPyXL】PythonでExcelを自動操作する方法
続きを見る
今回は以上です。