Advertisement
Guest User

Untitled

a guest
Nov 14th, 2019
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.59 KB | None | 0 0
  1. from tweepy.streaming import StreamListener
  2. from tweepy import OAuthHandler
  3. from tweepy import Stream
  4. from kafka import KafkaClient, SimpleProducer
  5. import json
  6. import requests
  7. import datetime
  8. import time
  9. import schedule
  10. from collections import Counter
  11. WEATHER_KEY = '6ae0ae17ad4a704d053d600d126b2b51'
  12. CONSUMER_KEY = 'r4MfeaR7f0u8ZN4UJhs4iE6B0'
  13. CONSUMER_SECRET = 'HpqlyCXux9YafelBkVdTTAAx4EcwnBwT22FFHXT7JhTgSFv46f'
  14. ACCESS_TOKEN = '1192462382611742720-CclEg4ez8mIyErD4XdbBhYYFFTowhZ'
  15. ACCESS_SECRET = 'SzlbSZUF9AMui5OtrqVX144brAhPL0tT42E0oglPNhBTZ'
  16. class TweetStreamer():
  17.     def __init__(self):
  18.         pass
  19.     def stream_tweets(self):
  20.         listener = StdOutListener()
  21.         auth = OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
  22.         auth.set_access_token(ACCESS_TOKEN, ACCESS_SECRET)
  23.         stream = Stream(auth, listener)
  24.         stream.filter(locations=[-74.1687,40.5722,-73.8062,40.9467])
  25. class StdOutListener(StreamListener):
  26.     def __init__(self):
  27.         self.kafka = KafkaClient("localhost:9092")
  28.         self.producer = SimpleProducer(self.kafka)
  29.  
  30.  
  31.     def on_data(self, data):
  32.         try:
  33.             curr_tweet = json.loads(data)
  34.  
  35.             data = json.dumps(curr_tweet)
  36.             self.producer.send_messages('tweets', data.encode('utf-8'))
  37.             print("Successfully sent message to kafka")
  38.         except BaseException as e:
  39.             print("Error on_data %s" % str(e))
  40.         return True
  41.  
  42.     def on_error(self, status):
  43.         print(status)
  44.  
  45. if __name__=='__main__':
  46.     twitter_streamer = TweetStreamer()
  47.     twitter_streamer.stream_tweets()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement