#背景、目的
複数のTwitterアカウントのscreen_name(@----)を格納したリストが用意してあります。
(参考) [python]リスト内の文字列を含むツイートをしたユーザのリストを作成する
https://qiita.com/Yoocie/items/5ba57645d38ee5203ef7
今回は、作成したリストに含まれるユーザーのタイムラインを取得し、txtファイルとして保存していきます。一つのタイムラインにつき、一つのtxtファイルが作成されるようにします。
なお、一つのタイムラインあたり取得する最大のツイート数は3,200とし、RTは取得しないこととしました。
#ユーザーリスト
用意したリストは、こんな感じです。(実際には、文字列が各ユーザーのscreen_nameになります。)
users.py
users=['---','vvv','^^^',...(中略)...,'+++',')))']
#関数の作成(タイムラインの取得、テキストファイルの作成)
get_timeline.py
import tweepy
import config #同じディレクトリに'config.py'というファイルがあります。
'''
config.py
CK = "*****" #CONSUMER_KEY
CS = "*****" #CONSUMER_SECRET
AT = "*****" #ACCESS_TOKEN
ATS = "*****" #ACCESS_TOKEN_SECRET
'''
CK = config.CK
CS = config.CS
AT = config.AT
ATS = config.ATS
# OAuth認証
auth = tweepy.OAuthHandler(CK, CS)
auth.set_access_token(AT, ATS)
api = tweepy.API(auth)
#1ユーザー分のタイムラインを取得し、テキストファイルとして保存する関数の定義
def get_timeline(name,i):
#一人あたり最大3200件のツイートを取得
pages = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]
data = []
for page in pages:
results = api.user_timeline(screen_name=name,\
include_rts=False,\#リツイートは取得しません。
count=200,\#上限の200件ずつ、ツイートを取得します。
page=page)
for result in results:
data.append(result.text)
line=''.join(data)
#タイムラインの内容を含むテキストファイルの作成、保存
#テキストファイルの名前は '20191210_user3_^^^.text' というような形式
with open('20191210_user'+str(i)+'_'+name+'.txt', 'wt') as f:
f.write(line)
#関数の使用
上で定義した関数を用います。ここでは、ユーザーリストの最初の6アカウントのタイムラインを取得します。
for i in range(6):
get_timeline(users[i],i)
#環境
macOS Catalina
Jupiter notebook