如何通过python-twitter模块获取完整的Twitter搜索推文?
嘿,这个问题我之前也碰到过!Twitter API默认返回的是截断后的推文内容,尤其是当推文长度超过传统的140字符限制时,不过用python-twitter模块很容易解决这个问题,只要调整两个地方就行:
解决步骤
- 调用
GetSearch方法时,添加tweet_mode='extended'参数,这个参数会告诉API返回完整的推文文本,而不是截断版本。 - 获取推文内容时,使用
status.full_text属性代替原来的status.text,因为开启extended模式后,完整内容会存在full_text字段里。
修改后的代码示例
import twitter # 初始化API客户端 api = twitter.Api(consumer_key=CONSUMER_KEY, consumer_secret=CONSUMER_SECRET, access_token_key=ACCESS_TOKEN, access_token_secret=ACCESS_SECRET) # 添加tweet_mode='extended'来获取完整推文 results = api.GetSearch(term="car", since="2018-04-11", until="2018-04-12", count=5, tweet_mode='extended') # 遍历并打印完整文本 for status in results: # 处理转发推文的情况,转发的完整内容在retweeted_status里 if hasattr(status, 'retweeted_status'): full_tweet_text = status.retweeted_status.full_text else: full_tweet_text = status.full_text print(full_tweet_text)
补充说明
如果你的推文里包含转发内容,直接取status.full_text可能只能拿到“RT @xxx: [截断内容]”,所以需要判断是否存在retweeted_status属性,有的话就从这个属性里获取原推文的完整文本,这样就能覆盖所有情况啦。
内容的提问来源于stack exchange,提问作者Marcos Serrano
相关产品推荐
相关产品推荐

