2016-03-14 37 views
0

我想过滤Twitter的实时鸣叫,我有这个列表关键字= [“亚历克斯”,“爱”,“讨厌”,“饥饿” ,“开心”]我想获得具有“亚历克斯”的推文并且至少有一个来自给定列表的关键字。我的代码在运行时处于低位,它跟踪包含列表中任何单词的推文。再次记住,我希望“亚历克斯”作为主要跟踪关键词,推文应该有“亚历克斯”,并且至少应该包括“爱”,“讨厌”,“饥饿”,“快乐”等单词中的一个。获取鸣叫,在Python中有一个特定的关键字和其他可选的关键字

from tweepy import Stream 
from tweepy import OAuthHandler 
from tweepy.streaming import StreamListener 
import json 

# consumer key, consumer secret, access token, access secret. 
ckey = "xxxxxxxxxxxxxxx" 
csecret = "xxxxxxxxxxxxxxxxxx" 
atoken = "xxxxxxxxxxxxxxxxxx" 
asecret = "xxxxxxxxxxxxxxxxxxx" 

class listener(StreamListener): 
    def on_data(self, data): 
     all_data = json.loads(data) 
     tweet = all_data["text"] 
     username = all_data["user"]["screen_name"] 
     out = open('out1.txt', 'a') 
     out.write(tweet.encode('utf-8')) 
     out.write('\n') 
     out.close() 
     print username, " :: ", tweet 
     return True 

    def on_error(self, status): 
     print status 

auth = OAuthHandler(ckey, csecret) 
auth.set_access_token(atoken, asecret) 
keywords = ["Alex", "love","hate","hungry","happy"] 
twitterStream = Stream(auth, listener()) 
twitterStream.filter(track=keywords, languages=["en"]) 

回答

2

比方说,你保存你的tweet在一个名为变量tweet

keywords = ['love', 'hate', 'hungry', 'happy'] 
if "Alex" in tweet: 
    if any(keyword in tweet for keyword in keywords): 
     # get the tweet 
相关问题