【发布时间】:2016-03-14 12:44:22
【问题描述】:
我正在尝试过滤来自 twitter 的实时推文,我有这个列表关键字=[“Alex”、“love”、“hate”、“hungry”、“happy”] 我想获得包含“ Alex”和给定列表中的至少一个关键字。当我运行它时,我的代码在下面,它会跟踪包含列表中任何单词的推文。再次记住,我希望“Alex”作为主要跟踪关键字,tweet 应该有“Alex”和至少其中一个词“love”、“hate”、“hungry”、“happy”。
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"])
【问题讨论】: