Skip to content

Instantly share code, notes, and snippets.

@kingslyroche
Last active October 30, 2020 07:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kingslyroche/7610bf440a77c0b8c767de0d99dbda70 to your computer and use it in GitHub Desktop.
Save kingslyroche/7610bf440a77c0b8c767de0d99dbda70 to your computer and use it in GitHub Desktop.
python_tweet_stream
import boto3
import json
from datetime import datetime
from tweepy.streaming import StreamListener
from tweepy import OAuthHandler
from tweepy import Stream
from urllib3.exceptions import ProtocolError
#Variables that contains the user credentials to access Twitter API
access_token=''
access_token_secret=''
consumer_key=''
consumer_secret=''
class TweetStreamListener(StreamListener):
# on success
def on_data(self, data):
try:
kinesis_client.put_record(
DeliveryStreamName=stream_name,
Record={
'Data': data
}
)
except (AttributeError, Exception) as e:
print (e)
return True
# on failure
def on_error(self, status):
print(status)
stream_name = 'twitter_stream' # fill the name of Kinesis data stream you created
if __name__ == '__main__':
kinesis_client = boto3.client('firehose',
region_name='', # enter the aws region
aws_access_key_id='', # fill your AWS access key id
aws_secret_access_key='') # fill you aws secret access key
# create instance of the tweepy tweet stream listener
listener = TweetStreamListener()
# set twitter keys/tokens
auth = OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
# create instance of the tweepy stream
stream = Stream(auth, listener)
# search twitter for tags or keywords from cli parameters
#query = sys.argv[1:] # list of CLI arguments
#query_fname = ' '.join(query) # string
while True:
try:
stream.filter(track=['trump'])
except ProtocolError:
continue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment