如何将多个用户的推文附加到单个 CSV 文件中
How to append tweets of multiple users into a single CSV file
我正在尝试使用此代码使用 tweepy 在单个 CSV 文件中提取多个用户的最近 50 条推文。使用此代码,我可以为所有用户单独制作 CSV 文件,但希望他们进入单个 CSV 文件。
import tweepy
import csv
consumer_key ='XXX'
consumer_secret = 'XXX'
access_key = 'XXX'
access_secret = 'XXX'
handles_list = ["handle1", "handle2", "handle3"]
def get_all_tweets(screen_name):
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_key, access_secret)
api = tweepy.API(auth)
recenttweets = []
recent_tweets = api.user_timeline(screen_name = handle, count=50)
recenttweets.extend(new_tweets)
Resultingtweets= [[tweet.user.name, tweet.user.screen_name, tweet.user.description, tweet.id_str, tweet.created_at, tweet.text.encode("utf-8")] for tweet in recenttweets]
with open('%s_tweets.csv' % handle, 'w', encoding='utf-8') as f:
writer = csv.writer(f)
writer.writerow(["User Name","Twitter_Handle","Twitter_User_Description","tweet_id","created_at","Tweet_text"])
writer.writerows(Resultingtweets)
if __name__ == '__main__':
for handle in handles_list:
get_all_tweets("handles")
print ("Done.")
您需要稍微调整一下,只为输出打开一个文件,以下一种方法应该可行:
import tweepy
import csv
consumer_key ='XXX'
consumer_secret = 'XXX'
access_key = 'XXX'
access_secret = 'XXX'
handles_list = ["handle1", "handle2", "handle3"]
def get_all_tweets(screen_name, writer):
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_key, access_secret)
api = tweepy.API(auth)
recenttweets = []
recent_tweets = api.user_timeline(screen_name = handle, count=50)
recenttweets.extend(new_tweets)
Resultingtweets= [[tweet.user.name, tweet.user.screen_name, tweet.user.description, tweet.id_str, tweet.created_at, tweet.text.encode("utf-8")] for tweet in recenttweets]
writer.writerow(["User Name","Twitter_Handle","Twitter_User_Description","tweet_id","created_at","Tweet_text"])
writer.writerows(Resultingtweets)
if __name__ == '__main__':
with open('all_tweets.csv', 'w', encoding='utf-8') as f_all:
writer = csv.writer(f_all)
for handle in handles_list:
get_all_tweets("handles", writer)
print ("Done.")
我正在尝试使用此代码使用 tweepy 在单个 CSV 文件中提取多个用户的最近 50 条推文。使用此代码,我可以为所有用户单独制作 CSV 文件,但希望他们进入单个 CSV 文件。
import tweepy
import csv
consumer_key ='XXX'
consumer_secret = 'XXX'
access_key = 'XXX'
access_secret = 'XXX'
handles_list = ["handle1", "handle2", "handle3"]
def get_all_tweets(screen_name):
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_key, access_secret)
api = tweepy.API(auth)
recenttweets = []
recent_tweets = api.user_timeline(screen_name = handle, count=50)
recenttweets.extend(new_tweets)
Resultingtweets= [[tweet.user.name, tweet.user.screen_name, tweet.user.description, tweet.id_str, tweet.created_at, tweet.text.encode("utf-8")] for tweet in recenttweets]
with open('%s_tweets.csv' % handle, 'w', encoding='utf-8') as f:
writer = csv.writer(f)
writer.writerow(["User Name","Twitter_Handle","Twitter_User_Description","tweet_id","created_at","Tweet_text"])
writer.writerows(Resultingtweets)
if __name__ == '__main__':
for handle in handles_list:
get_all_tweets("handles")
print ("Done.")
您需要稍微调整一下,只为输出打开一个文件,以下一种方法应该可行:
import tweepy
import csv
consumer_key ='XXX'
consumer_secret = 'XXX'
access_key = 'XXX'
access_secret = 'XXX'
handles_list = ["handle1", "handle2", "handle3"]
def get_all_tweets(screen_name, writer):
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_key, access_secret)
api = tweepy.API(auth)
recenttweets = []
recent_tweets = api.user_timeline(screen_name = handle, count=50)
recenttweets.extend(new_tweets)
Resultingtweets= [[tweet.user.name, tweet.user.screen_name, tweet.user.description, tweet.id_str, tweet.created_at, tweet.text.encode("utf-8")] for tweet in recenttweets]
writer.writerow(["User Name","Twitter_Handle","Twitter_User_Description","tweet_id","created_at","Tweet_text"])
writer.writerows(Resultingtweets)
if __name__ == '__main__':
with open('all_tweets.csv', 'w', encoding='utf-8') as f_all:
writer = csv.writer(f_all)
for handle in handles_list:
get_all_tweets("handles", writer)
print ("Done.")