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

Posted

技术标签:

【中文标题】使用 tweepy 从“user_timeline”获取完整的推文文本【英文标题】:Getting full tweet text from "user_timeline" with tweepy 【发布时间】:2017-07-31 00:38:29 【问题描述】:

我正在使用 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)

返回:

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 以获取我请求的全文吗?

【问题讨论】:

你在做什么来获得回报? 抱歉回复慢,刚刚看到这个 - 我只是在打印new_tweets[0] Tweepy Truncated Status的可能重复 【参考方案1】:

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

然后,您应该使用 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]

【讨论】:

在我的情况下它不起作用。我仍然收到截断的推文。 :(【参考方案2】:

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 测试的。

【讨论】:

我正在寻找这个。谢谢! 如何确定给定状态是推文还是转推?编辑:没关系,我找到了这样做的方法。感谢您的回答:) 感谢您发布此信息!我现在可以从他们的时间线中获取 Twitter 用户在其推文中的全文。

以上是关于使用 tweepy 从“user_timeline”获取完整的推文文本的主要内容,如果未能解决你的问题,请参考以下文章

使用Tweety中的user_timeline按文本过滤推文

使用 twitter API 和 statuses/user_timeline 收集用户推文

使用 Twitter Fabric 获取 user_timeline 时禁止获取 403

如何在不使用 Twitter API 1.1 的情况下检索 Twitter user_timeline

来自 Twitter 的 PHP XML 提要使用情况

从 twitter api 获取数据