You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Tweepy获取Twitter长推文被截断,求完整获取方法

获取完整长推文的解决方法

问题原因

你当前的代码直接将API返回的Response对象存入列表,且未正确提取推文数据,导致无法获取完整的长推文内容。Twitter API v2中,长推文的完整文本需要通过正确的字段请求和数据提取来获取。

解决步骤

1. 确保请求完整文本字段

在search_all_tweets的tweet_fields中保留text字段即可——API v2中该字段默认返回完整的长推文内容(包含超过280字符的部分),无需额外配置旧版API的tweet_mode参数。你当前的参数已经满足这一点,无需修改字段配置。

2. 正确提取推文数据

你当前的代码将整个response对象存入tweets列表,这会导致后续查看时看到的是对象的截断表示,而非实际完整文本。需要提取response.data中的每个推文对象:

修改后的代码示例:

import tweepy
import time

tweets = []

for i,j in zip(start_time,end_time):
    print(i)
    print(j)
    for response in tweepy.Paginator(client.search_all_tweets, 
                                     query = 'สมอง -is:retweet lang:th',
                                     user_fields = ['username', 'public_metrics', 'description', 'location'],
                                     tweet_fields = ['created_at', 'geo', 'public_metrics', 'text'],
                                     expansions = ['author_id', 'geo.place_id'],
                                     start_time = i,
                                     end_time = j):
        time.sleep(1)
        # 提取响应中的推文数据,而非整个response对象
        if response.data:
            tweets.extend(response.data)

# 查看完整推文内容的示例
for tweet in tweets:
    print(f"推文ID: {tweet.id}")
    print(f"完整内容: {tweet.text}")
    print("---")

3. 排查终端显示截断问题

如果API返回的文本本身完整,但终端查看时显示截断,这只是终端的自动换行/截断机制,实际数据是完整的。可以将内容写入文件验证:

# 将完整推文写入文件保存
with open("full_tweets.txt", "w", encoding="utf-8") as f:
    for tweet in tweets:
        f.write(f"推文ID: {tweet.id}\n")
        f.write(f"内容: {tweet.text}\n")
        f.write("="*50 + "\n")

内容的提问来源于stack exchange,提问作者tassaneel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 22:45:34