今回はPythonのTwitter APIをラッパーしたライブラリである「Tweepy」を用いて特定のTwitterアカウントの過去ツイートを一括で自動取得する方法について紹介したいと思います。
【実行環境】
- Python3.7
- Tweepy3.6
- TwitterAPI_V1
関連記事:【Python】TweepyでTwitterAPI_V2のAPIを使ってツイートするサンプルプログラム
Tweepyで特定ユーザーの過去ツイートを取得する
#特定のユーザーのツイートをデータフレームで取得する#
import tweepy
from datetime import timedelta
import pandas as pd
CK = '' # Consumer Key
CS = '' # Consumer Secret
AT = '' # Access Token
AS = '' # Accesss Token Secert
#認証情報を設定
auth=tweepy.OAuthHandler(CK, CS)
auth.set_access_token(AT, AS)
#APIインスタンスの作成
api=tweepy.API(auth)
#アカウント指定
Account = ''
#ツイート保存用変数&取得するツイートを計算する
tweet_data = []
num = 0
for page in range(2):
tweets = api.user_timeline(Account, count=200, page=page)
for tweet in tweets:
tweet.created_at += timedelta(hours=9)
num += 1
tweet_data.append(['@'+Account, tweet.created_at, tweet.text])
# ツイートデータをデータフレームに変換
tweet_data = pd.DataFrame(tweet_data, columns=["account", "date", "tweet"])
tweet_data.head()
range()は〇×200ツイート取得できます。無料版のAPIでは最大3500~4000ツイートが取得上限となっています。
関連記事:【Python】TwitterのDM送信をTweepyで自動化する
関連記事:【Python】Tweepyで検索に引っかかったツイートを自動でいいね!する
コメント
[…] 関連記事:【Python】Tweepyで特定ユーザーの過去ツイートをスクレイピングで自動取得する […]
わかりやすく丁寧なコードを記載いただきありがとうございます。
コピペして使用したところ、user_timelineのところで以下のエラーが出てしまいました。
どの様に改変したらよろしいでしょうか?
ご教授いただけると幸いです。
ーーーーーーーーーーーーーーーーーーーーーーーー
44 kwargs[‘payload_list’] = payload_list
45 kwargs[‘payload_type’] = payload_type
—> 46 return method(*args, **kwargs)
TypeError: user_timeline() takes 1 positional argument but 2 were given
コメントありがとうございます
恐らくTweepyのバージョンに関連するエラーですので
pip install tweepy — upgrade などでtweepyのライブラリのバージョンっをアップデートすれば解決するのではないかと思います
参照:https://stackoverflow.com/questions/69687310/tweepy-user-timeline-takes-1-position-but-2-were-given-error