Cea*_*lem 4 python string twitter list tweepy
您好,我正在尝试使用 tweepy 抓取某个用户的推文。这是我的代码:
tweets = []
username = 'example'
count = 140 #nb of tweets
try:
# Pulling individual tweets from query
for tweet in api.user_timeline(id=username, count=count, include_rts = False):
# Adding to list that contains all tweets
tweets.append((tweet.text))
except BaseException as e:
print('failed on_status,',str(e))
time.sleep(3)
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是推文未完成,末尾带有“...”。
我想我已经查看了堆栈溢出和其他地方的所有其他类似问题,但没有任何效果。大多数人并不关心我,因为我不处理转发。
我尝试过将tweet_mode = 'extended'and/or tweet.full_textortweet._json['extended_tweet']['full_text']放在不同的组合中。
我没有收到错误消息,但没有任何效果,只是返回一个空列表。而且看起来文档已经过时了,因为它没有提到“tweet_mode”和“include_rts”参数:

有人设法获得每条推文的全文吗?我真的被这个看似简单的问题困扰并且正在掉头发,所以我将不胜感激任何建议:D 提前致谢!
TL;DR:您很可能遇到速率限制问题。并使用该full_text属性。
长版:
\n\n第一的,
\n\n\n\n\n我遇到的问题是推文未完成,末尾带有“...”。
\n
根据有关扩展推文的 Tweepy 文档,这是预期的:
\n\n\n兼容模式
\n\n...还可以看出Status 对象的属性
\ntext被截断,因为它将带有省略号字符、空格和推文的缩短的自永久链接 URL 后缀。
沃特
\n\n\n\n\n而且看起来文档已经过时了,因为它没有提到“tweet_mode”和“include_rts”参数:
\n
他们没有明确地将其添加到每个方法的文档中,但是,他们指定tweet_mode将其添加为 param:
\n标准API方法
\n\n任何
\ntweepy.API返回 Status 对象的方法都接受新tweet_mode参数。此参数的有效值为compat和extended,分别给出兼容模式和扩展模式。默认模式(如果未提供参数)为兼容模式。
那么,如果不tweet_mode添加到通话中,您确实会收到包含部分文本的推文吗?有了它,你得到的只是一个空列表?如果您删除它并立即重试,请验证您是否仍然得到一个空列表。即,一旦获得空列表结果,请检查即使您将参数更改回有效的参数,是否仍然获得空列表。
基于bug #1329 - API.user_timeline 有时返回空列表- 这似乎是速率限制问题:
\n\n\n \n\n此 API 限制将表现为您所描述的问题。
\n
即使它有效,它也是在full_text属性中,而不是通常的text. 所以这条线
tweets.append((tweet.text))\nRun Code Online (Sandbox Code Playgroud)\n\n应该
\n\ntweets.append(tweet.full_text)\nRun Code Online (Sandbox Code Playgroud)\n\n(并且您可以跳过额外的封闭部分())
顺便说一句,如果您对转发不感兴趣,请参阅此示例以了解处理转发的正确方法:
\n\n\n给定一个现有的
\n\ntweepy.API对象和id一条推文,以下内容可用于打印推文的全文,或者如果它\xe2\x80\x99是转发推文,则打印转发推文的全文:Run Code Online (Sandbox Code Playgroud)\n\nstatus = api.get_status(id, tweet_mode="extended")\ntry:\n print(status.retweeted_status.full_text)\nexcept AttributeError: # Not a Retweet\n print(status.full_text)\n如果
\nstatus是转发,status.full_text可能会被截断。
| 归档时间: |
|
| 查看次数: |
4022 次 |
| 最近记录: |