今回は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