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

Posted

技术标签:

【中文标题】获取 Twitter 用户的整个用户时间线【英文标题】:Getting whole user timeline of a Twitter user 【发布时间】:2017-07-02 16:42:44 【问题描述】:

我想从一个 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 条推文?我做错了什么?

【问题讨论】:

How can I retrieve all Tweets and attributes for a given user using Python?的可能重复 【参考方案1】:

您的代码存在一些问题,包括一些多余的导入。特别是,您不需要import twitterimport tweepy - tweepy 可以处理您需要的一切。您遇到的特定问题是分页问题之一,可以使用 Cursor 对象在 tweepy 中处理,如下所示:

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() 有什么用? @CuriousStudent 它返回光标返回的项目,而不是 .pages() 返回项目的页面。 @ason​​gtoruin 感谢分享,但我使用了您的代码,有时它返回 160 条推文,有时返回 220 条推文。你知道这可能是什么原因吗? @AlexanderRyhlitsky 可能限制速率。

以上是关于获取 Twitter 用户的整个用户时间线的主要内容,如果未能解决你的问题,请参考以下文章

使用 tweepy 获取用户整个 Twitter 时间线

Twitter Bot Node.js 和 Twit 包

我们可以从 Twitter oauth API 获取电子邮件 ID 吗?

使用npm twit将图像上传到Twitter时“媒体类型无法识别”

如何使用python从用户时间线twitter检索/查找tweet上的特定文本

我应该通过 Twitter 上的直接消息向用户提供丢失的凭据吗?