使用 tweepy 从 "user_timeline" 获取完整的推文文本

Getting full tweet text from "user_timeline" with tweepy

我正在使用 tweepy 使用包含的脚本从用户的时间轴中获取推文 here。但是,这些推文被截断了:

auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_key, access_secret)
api = tweepy.API(auth)
new_tweets = api.user_timeline(screen_name = screen_name,count=200, full_text=True)

Returns:

Status(contributors=None, 
     truncated=True, 
     text=u"#Hungary's new bill allows the detention of asylum seekers 
          & push backs to #Serbia. We've seen push backs before so\u2026 https:// 
          t.co/iDswEs3qYR", 
          is_quote_status=False, 
          ...

也就是说,对于某些 inew_tweets[i].text.encode("utf-8") 看起来像

#Hungary's new bill allows the detention of asylum seekers & 
push backs to #Serbia. We've seen push backs before so…https://t.co/
iDswEs3qYR

后者中的 ... 替换了通常会在 Twitter 上显示的文本。

有谁知道我如何覆盖 truncated=True 以获得我请求的全文?

而不是 full_text=True 你需要 tweet_mode="extended"

然后,您应该使用 full_text 而不是文本来获取完整的推文文本。

您的代码应如下所示:

new_tweets = api.user_timeline(screen_name = screen_name,count=200, tweet_mode="extended")

然后为了获得完整的推文文本:

tweets = [[tweet.full_text] for tweet in new_tweets]

Manolis 的回答很好但不完整。要获得推文的扩展版本(如 Manoli 的版本),您可以这样做:

tweetL = api.user_timeline(screen_name='sdrumm', tweet_mode="extended")
tweetL[8].full_text
'Statement of the day at #WholeChildSummit2019 - “‘SOME’ is not a number, and ‘SOON’ is not a time!” IMO, this is why educational systems get stuck. Who in your system will initiate change? TODAY! #HSEFutureReady'

但是,如果此推文是转推,您需要使用转推的全文:

tweetL = api.user_timeline(id=2271808427, tweet_mode="extended")
# This is still truncated
tweetL[6].full_text
'RT @blawson_lcsw: So proud of these amazing @HSESchools students who presented their ideas on how to help their peers manage stress in mean…'
# Use retweeted_status to get the actual full text
tweetL[6].retweeted_status.full_text
'So proud of these amazing @HSESchools students who presented their ideas on how to help their peers manage stress in meaningful ways! Thanks @HSEPrincipal for giving us your time!'

这是用 Python 3.6tweepy-3.6.0 测试的。