Python スクレイピング

【Python】TwitterAPIを使って特定アカウントのツイートをまとめて取得する

この記事は約4分で読めます。

 

今回は前回紹介したTwitterのapiをPythonで叩けるようにラッピングした「tweepy」について紹介しました

 

関連記事:【Python】TwitterのAPIを簡単操作できる「Tweepy」の使い方

 

Tweepyを使って特定のアカウントの呟きを一括取得する

 

今回はその応用でtweepyを使って特定のアカウントの過去ツイートをまとめてスクレイピングする方法について紹介したいと思います。

 

# ライブラリの読込とTwitterAPI鍵の設定
import tweepy

from datetime import timedelta

import pandas as pd

CK = ''     # Consumer Key

CS = ''     # Consumer Secret

AT = ''     # Access Token

AS = ''     # Accesss Token Secert

 

API鍵についてはバージョン1.1のものを使用する前提になります。

 

2021年から新しくできたV2のAPI鍵については以下の記事を参照してください

参照:【Python】TweepyでTwitterAPI_V2のAPIを使ってツイートするサンプルプログラム

 

 

#認証情報を設定

auth=tweepy.OAuthHandler(CK, CS)

auth.set_access_token(AT, AS)

#APIインスタンスの作成

api=tweepy.API(auth)

#アカウント指定(@の後ろの英数字、↓はサンプルID)

Account = 'python_mllover'

#ツイート保存用変数&取得するツイートを計算する

tweet_data = []

num = 0

for page in range(17):

    tweets = api.user_timeline(Account, count=200, page=page)

    for tweet in tweets:

        tweet.created_at += timedelta(hours=9)
#         print('----------') #見やすいように
#         print(tweet.created_at) #書くツイートの投稿時間表示
#         print(tweet.text) #各ツイート内容表示

        num += 1

        tweet_data.append(['@'+Account, tweet.created_at, tweet.text])

print(num, 'ツイート表示しました。')

# ツイートデータをデータフレームに変換

tweet_data = pd.DataFrame(tweet_data, columns=["account", "date", "tweet"])

tweet_data

 

<実行結果>

 

無償用のAPIだと特定のアカウントに対する過去のツイートの取得は3400ツイートまでなので、range(17)を指定しています。ちなみにデータフレームに格納したデータを抜き出したいときは以下のようにすればよいです。

 

# 適当なツイートデータを抜き出す

tweet_data.iloc[7]

print(tweet_data.iloc[7].date)

print(tweet_data.iloc[7].tweet)

 

 

関連記事:【Python】Tweepyで相互フォローの確認&フォロバとリムーブを自動化

関連記事:【Python】Tweepyで検索に引っかかったツイートを自動ファボ

 

 

 

 

 

コメント

  1. […] 参照記事:【Python】TwitterのAPIを使って特定のアカウントの呟きを一括取得する […]

タイトルとURLをコピーしました