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

使用Twython将匹配搜索条件的所有Tweet ID保存到文本文件

解决Twython保存所有Tweet ID为可使用变量的问题

嘿,我来帮你搞定这个问题!你现在遇到的情况应该是因为每次循环都在覆盖文件内容,或者只把单个ID存进了变量里,而没有把所有查询到的ID收集起来。下面一步步教你怎么修改代码:

第一步:先把所有Tweet ID收集到列表里

首先,我们需要初始化一个空列表,在遍历搜索结果的时候,把每个符合条件的Tweet ID都添加到这个列表中。注意用id_str而不是id,避免大整数溢出的问题:

from twython import Twython

# 替换成你的Twitter API密钥
APP_KEY = '你的APP_KEY'
APP_SECRET = '你的APP_SECRET'
OAUTH_TOKEN = '你的OAUTH_TOKEN'
OAUTH_TOKEN_SECRET = '你的OAUTH_TOKEN_SECRET'

# 初始化Twython客户端
twitter = Twython(APP_KEY, APP_SECRET, OAUTH_TOKEN, OAUTH_TOKEN_SECRET)

# 初始化空列表用来存所有Tweet ID
tweet_ids = []

# 执行搜索(这里可以调整q和count参数)
search_results = twitter.search(q='你的搜索关键词', count=100)

# 遍历搜索结果,收集ID
for tweet in search_results['statuses']:
    tweet_id = tweet['id_str']
    print(tweet_id)  # 依然保留打印功能
    tweet_ids.append(tweet_id)

第二步:处理多页搜索结果(可选但重要)

Twitter的搜索API默认最多返回100条结果,如果你的查询结果超过100条,需要分页获取更早的推文。可以加个循环来处理:

tweet_ids = []
max_id = None

while True:
    # 构建搜索参数,带上max_id获取更早的内容
    search_params = {'q': '你的搜索关键词', 'count': 100}
    if max_id:
        # 减1是为了避免重复获取上一页的最后一条推文
        search_params['max_id'] = max_id - 1
    
    search_results = twitter.search(**search_params)
    statuses = search_results['statuses']
    
    if not statuses:
        break  # 没有更多结果了,退出循环
    
    # 把当前页的ID添加到列表
    for tweet in statuses:
        tweet_ids.append(tweet['id_str'])
    
    # 更新max_id为当前页最后一条推文的ID
    max_id = int(statuses[-1]['id_str'])

第三步:保存为可直接使用的变量

现在我们已经把所有ID收集到tweet_ids列表里了,接下来把它写入文件,让内容直接是Python可识别的变量格式:

# 写入文件,用utf-8编码避免乱码
with open('tweet_ids.py', 'w', encoding='utf-8') as f:
    # 直接写入变量定义,这样文件里的内容可以直接用
    f.write(f'tweet_ids = {tweet_ids}')

这样保存后的tweet_ids.py文件内容会是类似这样的:

tweet_ids = ["1234567890123456789", "9876543210987654321", ...]

之后你可以直接在其他Python代码里导入这个变量:

from tweet_ids import tweet_ids
# 现在tweet_ids就是包含所有ID的列表啦

关键注意点

  • 不要在循环里每次打开文件写入(比如用open(..., 'w')),那样每次都会清空文件,只保留最后一个ID;
  • 用列表收集所有ID是核心,这样最后一次性写入文件就能保存全部内容;
  • 记得遵守Twitter API的调用限制,避免频繁请求导致被限流。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 08:15:57