如何通过Twitter API的JSON及Tweepy获取完整推文文本?
解决Tweepy获取完整推文内容的问题
嘿,我明白你遇到的麻烦了——用Tweepy拿推文时,text字段返回的总是带省略号的截断版,根本看不到完整内容对吧?别担心,这其实是Twitter API的默认行为,咱们只要调整一下调用参数就能搞定!
问题根源
Twitter API默认会把较长的推文截断,只返回部分内容+原文链接,想要获取完整文本,需要明确告诉API返回扩展模式的推文数据。
具体解决步骤
修改
user_timeline的调用参数
调用user_timeline时,一定要加上tweet_mode='extended'这个参数,这样获取到的推文对象就会包含完整的文本字段:# 原来的调用 # tweet_list = api.user_timeline(screen_name="目标用户名") # 修改后的调用 tweet_list = api.user_timeline(screen_name="目标用户名", tweet_mode='extended')正确访问完整文本字段
获取单条推文的JSON数据后,不能再用tweet['text']了,要根据推文是否为转发,选择对应的字段:- 如果是原创推文:使用
tweet['full_text'] - 如果是转发推文:完整内容存在
tweet['retweeted_status']['full_text']里(因为转发的原推文完整文本在这个嵌套字段中)
可以用一段简单的逻辑处理两种情况:
tweet = tweet_list[index]._json # 判断是否为转发推文 if 'retweeted_status' in tweet: full_tweet_text = tweet['retweeted_status']['full_text'] else: full_tweet_text = tweet['full_text'] print(full_tweet_text)- 如果是原创推文:使用
这样调整后,你就能拿到完整的推文内容啦,不管是原创还是转发的都没问题~
内容的提问来源于stack exchange,提问作者RRR
相关产品推荐
相关产品推荐

