3

当我在调用中不包含count参数时,我可以很好地使用流 API filter(),但是当我尝试指定我想从历史记录中接收多少条推文时,我的流对象返回None.

import tweepy
from tweepy.streaming import StreamListener, Stream

class Listener (StreamListener):
    def on_status(self, status):
        print '-' * 20
        print status.text
        return

def get_tweets(request):
    # if request.is_ajax():
    # All keys and secrets are declared here, but were removed for security reasons.

    auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
    auth.set_access_token(ACCESS_KEY, ACCESS_SECRET)
    api = tweepy.API(auth)
    listener = Listener()
    stream = Stream(auth, listener)
    stream.filter(follow=("14739093",), count=-5)

我还尝试了以下方法,看看它返回了什么。

>>> something = stream.filter(follow=("14739093",), count=-5)
>>> print something
None

谢谢你的帮助!

4

1 回答 1

9

Stream.filter总是返回None,它的工作只是将数据传递给StreamListener.

您的问题是 Twitter 只允许count某些“角色”的参数。

对捕获所有状态感兴趣的 Firehose、Links、Birddog 和 Shadow 客户端应保持对每秒接收到的状态数的当前估计,并注意接收到最后一个状态的时间。重新连接后,客户端可以估计要请求的适当积压。请注意,其他地方不允许使用 count 参数,包括 track、sample 和默认访问角色。

这就是您在413尝试使用该count参数时遇到错误的原因——您处于“默认访问”角色。

于 2011-08-18T17:43:26.807 回答