如何每隔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
相关产品推荐
相关产品推荐

