2016-03-14 35 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 
相關問題