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

如何每隔30秒循环执行这段Python脚本?

解决每隔30秒循环执行Tweepy搜索脚本的问题

你的问题主要出在两个地方:没有遍历推文生成器,以及循环逻辑的完整性不足。以下是修复后的方案:

1. 核心问题修复

原代码中tweets是Tweepy Cursor返回的生成器对象,直接引用tweet变量会触发NameError——这个变量根本没定义。必须通过for循环遍历生成器才能获取每条推文内容。

2. 完整可运行代码

import tweepy
import time
from tweepy.errors import RateLimitError

# 先完成API授权(替换成你的密钥)
auth = tweepy.OAuthHandler("你的consumer_key", "你的consumer_secret")
auth.set_access_token("你的access_token", "你的access_token_secret")
api = tweepy.API(auth)

while True:
    try:
        # 获取最多100条英文推文
        tweets = tweepy.Cursor(api.search_tweets, q='safe dev', lang='en', tweet_mode='extended').items(100)
        # 遍历并打印每条推文
        for tweet in tweets:
            print(tweet.full_text, tweet.created_at)
        
        # 间隔30秒再执行下一轮
        time.sleep(30)
    except RateLimitError:
        # 处理Twitter API限流,强制等待15分钟
        print("触发API调用频率限制,将在15分钟后重试")
        time.sleep(900)
    except Exception as e:
        # 捕获其他未知错误,避免脚本直接崩溃
        print(f"执行出错: {str(e)}")
        time.sleep(30)

关键注意事项

  • 务必先完成API授权:需要在Twitter开发者平台创建应用,获取对应的密钥和令牌,替换代码中的占位符
  • 加入异常处理:Twitter API有严格的调用频率限制,触发限流时脚本会自动等待,避免被封禁
  • 生成器遍历:Cursor返回的是惰性生成器,必须通过循环才能取出所有推文

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 03:20:32