每Twitter的docs,所述q
參數是有限的。
UTF-8,URL編碼的搜索查詢,最多500個字符,包括運算符。查詢可能會受到複雜性的限制。
如果要構建複雜的搜索詞邏輯,可以使用Streamer和Listener。你基本上在做你自己的過濾。這是一個Listener的簡單例子。我試圖給出一些從on_status
方法返回的流行對象,返回爲json
。
import json
class SListener(StreamListener):
def __init__(self, api = None, fprefix = 'streamer'):
self.api = api or API()
self.counter = 0
self.fprefix = fprefix
def on_data(self, data):
elif 'limit' in data:
if self.on_limit(json.loads(data)['limit']['track']) is False:
return False
elif 'warning' in data:
warning = json.loads(data)['warnings']
print warning['message']
return false
def on_status(self, status):
status_obj = json.loads(status)
username = status_obj["user"]["screen_name"]
userID = status_obj["user"]["id"]
user_loc = status_obj["user"]["location"]
tweet_date_time = status_obj["created_at"]
tweetID = status_obj["id"]
tweet = status_obj["text"].encode('utf-8')
searchTerms = ['1','2','3'] # to say ... '99' or '100'
if any(query in tweet for query in searchTerms):
print(tweet) #or do something with it