TwythonStreamer:OR不能用作过滤器

时间:2015-11-02 09:33:57

标签: python api twitter twython

我不确定为什么以下代码不会返回任何结果。如果我放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)

1 个答案:

答案 0 :(得分:0)

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

来自doc

  • 对于逻辑AND与空格分隔:Hoover Data == "data information"
  • 逻辑OR与逗号分隔:" ".join(['data', 'information']) == "data,information"