I have been trying to use tweepy to stream tweets and just print them. I want to filter the tweets by user and by keyword but it just doesn't seem to work. When i use the following code, i get all tweets from all users using the keyword 'hi' when i want it only from a specific user / users. However, when i dont filter by keyword, i get all incoming tweets from a specific user / users.
from __future__ import absolute_import, print_function
from tweepy import OAuthHandler, Stream, StreamListener
# Go to http://apps.twitter.com and create an app.
# The consumer key and secret will be generated for you after
consumer_key = "..."
consumer_secret = "..."
# After the step above, you will be redirected to your app's page.
# Create an access token under the the "Your access token" section
access_token = "..."
access_token_secret = "..."
class StdOutListener(StreamListener):
""" A listener handles tweets that are received from the stream.
This is a basic listener that just prints received tweets to stdout.
"""
def on_data(self, data):
print(data)
return True
def on_error(self, status):
print(status)
if __name__ == '__main__':
l = StdOutListener()
auth = OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
stream = Stream(auth, l)
stream.filter(track=['hi'], follow=["userID"])