1
我不確定爲什麼下面的代碼不會返回任何結果。如果我把streamer.statuses.filter(track = 'data')
,那麼它輸出推文。但是,如果我使用join
與OR
,它不起作用,雖然我使用'data'
作爲選項之一。最後,如果我使用track=keywords
,它不起作用。TwythonStreamer:或不起作用的篩選器
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)
Mmh的,我認爲你正在使用Twitter API以不正確的方式。從https://dev.twitter.com/streaming/overview/request-parameters#track:你應該使用「,」來分隔邏輯OR,使用「」來分隔邏輯AND – Salo
@Salo:所以,如果我想要AND,你的意思是這應該工作:keywords = ['data','information'] track =「」.join(keywords) –
@Salo:我檢查了OR:track =「,」。join(關鍵字)。有用。但AND不起作用:track =「」.join(關鍵字) –