当前位置: 首页 > 知识库问答 >
问题:

Tweepy Streaming-停止以x数量收集推文

洪飞驰
2023-03-14

我希望Tweepy Streaming API在我将x#条推文存储在MongoDB中后停止推文。

我尝试了类内的IF和WHILE语句,用计数器定义,但不能让它停止在一定的X量。这对我来说是一个真正的爆头。我在这里找到了这个链接:https://groups.google.com/forum/#!Tweepy/5IGlu2qiug4但是我复制这个的努力失败了。它总是告诉我init需要一个额外的参数。我相信我们的Tweepy认证设置不同,所以它不是苹果对苹果。

有什么想法吗?

from tweepy.streaming import StreamListener
from tweepy import OAuthHandler
from tweepy import Stream
import json, time, sys

import tweepy
auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(OAUTH_TOKEN, OAUTH_TOKEN_SECRET)

class StdOutListener(StreamListener):

    def on_status(self, status):
        text = status.text
        created = status.created_at
        record = {'Text': text, 'Created At': created}
        print record #See Tweepy documentation to learn how to access other fields
        collection.insert(record)  


    def on_error(self, status):
        print 'Error on status', status

    def on_limit(self, status):
        print 'Limit threshold exceeded', status

    def on_timeout(self, status):
        print 'Stream disconnected; continuing...'


stream = Stream(auth, StdOutListener())
stream.filter(track=['tv'])

共有1个答案

邹学民
2023-03-14

您需要在\uuuu init\uuuu中的类中添加一个计数器,然后在的状态中增加它。然后,当计数器低于20时,它将向集合中插入一条记录。这可以按如下所示进行:

def __init__(self, api=None):
    super(StdOutListener, self).__init__()
    self.num_tweets = 0

def on_status(self, status):
    record = {'Text': status.text, 'Created At': status.created_at}
    print record #See Tweepy documentation to learn how to access other fields
    self.num_tweets += 1
    if self.num_tweets < 20:
        collection.insert(record)
        return True
    else:
        return False

 类似资料:
  • 问题内容: 我正在将X#条tweets存储在MongoDB中之后,希望Tweepy Streaming API停止提取tweets。 我已经在类中尝试了IF和WHILE语句,并用计数器定义,但是无法使其停止在一定的X量处。对我来说这真是个危险。我在以下位置找到了此链接:https : //groups.google.com/forum/#!topic/tweepy/5IGlu2Qiug4, 但是我

  • 即便用追踪式收集辅助引用计数,在很多时候停顿时间依然不可接受,原因有几点: 虽然引用计数可以保证不产生循环的对象能实时回收,但存在很多这类对象是挂在循环引用数据结构上的,比如两个对象互相引用,而他们各自又挂了很多int和string数据,即是一个例子。由于这些对象的回收也是在停顿期,实时性不是那么好 循环引用本身并不罕见,双链表、树等数据结构都存在这种情况,实际工作中很多复杂的业务也存在这种情况,

  • 我试图更深入地理解Java的垃圾收集。 在HotSpot JVM世代集合中,堆中有三个区域(年轻世代、老世代和永久世代)。还有两种算法:

  • 问题内容: 当电话状态恢复为IDLE时,我正在拨打电话并使用电话监听器重新开始活动。但是当我完成活动后,电话监听器仍在运行,因此,当用户进行自己的通话并挂断时,我的活动又重新启动! 问题答案: 使用作为参数传递给方法停止监听更新。

  • 目前,我正在开发一个用于处理原始机器测量数据的storm拓扑。然而,我遇到了无法解释的问题与喷口。 我正在Azure HDInsight上运行一个简单的storm拓扑,用Java编写。事件是从eventhub中读取的,我使用microsoft eventhub spout(版本0.9)。这个eventhub有8个分区,这意味着我也需要EventhUbspout的8个实例。 但是,当我运行拓扑几个小

  • 我正在编写一些小型shell脚本实用程序,它自动部署过程。我准备了许多与在linux中关闭jboss服务器的命令相关的链接,这样我就可以从我的实用程序中关闭服务器。 阅读一些链接,这些链接将告诉如何在JBoss7或更高版本中实现这一功能,但在旧的JBoss5.x版本中则没有。其中之一是 问候