如何在Tweepy Streaming中限制推文流,获取100条后停止?
如何让Tweepy流在获取100条推文后停止?
很简单!你只需要给你的listener类加个计数器,每处理一条推文就累加计数,当计数到100时,让on_data方法返回False——Tweepy的流检测到返回False就会自动停止运行。
修改后的完整代码如下:
import json from tweepy import StreamListener class listener(StreamListener): def __init__(self): super().__init__() # 初始化推文计数器 self.tweet_count = 0 # 设置要获取的目标推文数量 self.target_count = 100 def on_data(self, data): all_data = json.loads(data) tweet = all_data["text"] username = all_data["user"]["screen_name"] # 这里可以保留你原本对推文的处理逻辑,比如打印、存储等 print(f"@{username}: {tweet}") # 每处理一条推文,计数器加1 self.tweet_count += 1 # 当达到目标条数时,返回False停止流 if self.tweet_count >= self.target_count: print(f"已获取{self.target_count}条推文,停止流处理") return False return True def on_error(self, status): print(status)
关键逻辑说明:
- 在
__init__方法里初始化了计数器和目标条数,后续要调整获取数量的话,直接改self.target_count就行 - 每次处理完推文后计数器累加,达标时返回
False触发流停止,这是Tweepy流的内置规则 - 完全保留了你原本的错误处理逻辑,不影响原有的错误状态打印
内容的提问来源于stack exchange,提问作者Sanjeev MUFC
相关产品推荐
相关产品推荐

