获取Twitter用户的完整个人时间线

19

我想获取一个 Twitter 用户的所有推文,至今为止,这是我所想出来的:

import twitter
import json
import sys
import tweepy 
from tweepy.auth import OAuthHandler


CONSUMER_KEY = ''
CONSUMER_SECRET= ''
OAUTH_TOKEN=''
OAUTH_TOKEN_SECRET = ''

auth = twitter.OAuth(OAUTH_TOKEN,OAUTH_TOKEN_SECRET,CONSUMER_KEY,CONSUMER_SECRET)


twitter_api =twitter.Twitter(auth=auth)

print twitter_api

statuses = twitter_api.statuses.user_timeline(screen_name='@realDonaldTrump')
print [status['text'] for status in statuses]

请忽略不必要的导入。一个问题是这只获取了用户最近的推文(或前20条推文)。是否有可能获取用户的所有推文?据我所知,GEt_user_timeline(?)仅允许限制在3200条。有没有办法获取至少3200条推文?我错在哪里?


1
可能是重复的问题:如何使用Python检索给定用户的所有推文和属性? - shad0w_wa1k3r
1个回答

31

你的代码有一些问题,包括一些多余的导入。特别地,你不需要 import twitterimport tweepy - tweepy 可以处理你需要的所有内容。你遇到的特定问题是分页问题,可以使用 tweepy 中的 Cursor 对象进行处理:

import tweepy

# Consumer keys and access tokens, used for OAuth
consumer_key = ''
consumer_secret = ''
access_token = ''
access_token_secret = ''

# OAuth process, using the keys and tokens
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)

# Creation of the actual interface, using authentication
api = tweepy.API(auth)

for status in tweepy.Cursor(api.user_timeline, screen_name='@realDonaldTrump', tweet_mode="extended").items():
    print(status.full_text)

这里末尾的 .items() 是什么意思?我很好奇。 - Curious Student
1
@CuriousStudent 它返回游标返回的项目,而不是.pages()返回项目的页面。 - asongtoruin
2
@asongtoruin 谢谢分享,但我使用了你的代码,有时返回160条推文,有时返回220条推文。你知道这是什么原因吗? - Aleksander Ryhlitski
@AlexanderRyhlitsky 可能是速率限制。 - Alan B

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接