我正在尝试使用api.home_timeline提取朋友的推文。我不想流式传输,但是我想保存800条推文,屏幕名称以及它们的喜欢/收藏夹到csv文件中。 Twitter一次只允许发送200条推文。鉴于我已经指定的密钥,到目前为止,这就是我所拥有的:
def data_set(handle):
auth=tweepy.OAuthHandler(CONSUMER_KEY,CONSUMER_SECRET)
auth=set_access_token(ACCESS_KEY,ACCESS_SECRET)
api=tweepy.API(auth)
count_tweets=api.home_timeline(screen_name=handle,count=200)
twits=[]
tweet_data=[tweet.text for tweet in count_tweets]
for t in count_tweets:
twits.append(t)
if __name__== '__main__':
tweet_data('my twitter name')
我最初的计划是拥有多个count_tweets,例如count_tweet1等。我不确定如何继续其余的工作。任何建议都将不胜感激。
答案 0 :(得分:0)
Twitter跟随pagination。对于每个请求,您最多发出200条推文(在home_timeline的情况下)。您获得的200条推文是基于受欢迎程度的。您可以通过遍历页面从用户的时间轴获取所有tweet。 Tweepy提供Cursor
功能来遍历页面
针对您的案例编辑的代码:
def data_set(handle):
auth=tweepy.OAuthHandler(CONSUMER_KEY,CONSUMER_SECRET)
auth=set_access_token(ACCESS_KEY,ACCESS_SECRET)
api=tweepy.API(auth)
tweet_data = []
for page in tweepy.Cursor(api.user_timeline, screen_name=handle, count=200, tweet_mode='extended').pages():
for tweet in page:
tweet_data.append(tweet.full_text)
return tweet_data
## Not sure why the following lines are needed
# twits=[]
# tweet_data=[tweet.text for tweet in count_tweets]
# for t in count_tweets:
# twits.append(t)
if __name__== '__main__':
print(data_set('my twitter name'))
我在代码中使用api.user_timeline
而不是api.home_timeline
,因为您说过您正试图从朋友的时间轴中获取推文。如果api.home_timeline
满足您的用例,您可以替换它。