TwythonStreamer:OR 不能用作过滤器

TwythonStreamer: OR does not work as a filter

我不确定为什么以下代码没有 return 任何结果。如果我输入 streamer.statuses.filter(track = 'data'),它就会输出推文。但是,如果我将 joinOR 一起使用,它就不起作用,尽管我使用 'data' 作为选项之一。最后,如果我使用 track=keywords,它也不起作用。

from twython import TwythonStreamer
from collections import Counter

tweets = []

class TweetStreamer(TwythonStreamer):
    def on_success(self, data):
        if 'text' in data:
            tweets.append(data['text'].encode('utf-8'))
            print data['text'].encode('utf-8')
        if len(tweets)>10:
            self.disconnect()

    def on_error(self, status_code, data):
        print status_code
        self.disconnect()

CONSUMER_KEY = "..."
CONSUMER_SECRET = "..."
ACCESS_TOKEN = "..."
ACCESS_TOKEN_SECRET = "..."

streamer = TweetStreamer(CONSUMER_KEY, CONSUMER_SECRET,
                         ACCESS_TOKEN, ACCESS_TOKEN_SECRET)

keywords = ['data','information']
track = " OR ".join(keywords)

streamer.statuses.filter(track = track)

您必须以正确的方式使用 Twitter API。

来自doc

  • 对于与 space 的逻辑与分隔:"data information" == " ".join(['data', 'information'])
  • 对于用逗号分隔的逻辑或:"data,information" == ",".join(['data', 'information'])