I am trying to run kafka to stream twitter data using some specific keywords. In my case I used "Dollar8". But I am getting error as shown below. I am using macOS.
import tweepy
from kafka import KafkaProducer
import logging
from tweepy import OAuthHandler
from tweepy import Stream
consumer_key = "XXXXXXX"
consumer_secret = "XXXXX"
access_token = "00000-XXXXXX"
access_token_secret = "XXXXXX"
# Accessing Kafka server at localhost:9092
producer = KafkaProducer(bootstrap_servers='localhost:9092')
# our cluster name is "top"
topic_name = "top"
class twitterauth():
# Setting up twitter
def authenticateTwitterApp(self):
auth = OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
return auth
class twitterstream():
# Streaming data
def __init__(self):
self.twitterAuth = twitterauth()
def stream_tweets(self):
while True:
listener_data = ListenerTS('consumer_key', 'consumer_secret', 'access_token','access_token_secret')
auth = self.twitterAuth.authenticateTwitterApp()
#stream = Stream(auth, listener)
listener_data.filter(track=["dollar8"], stall_warnings=True, languages= ["en"])
class ListenerTS(tweepy.Stream):
def on_data(self, raw_data):
producer.send(topic_name, str.encode(raw_data))
return True
if __name__ == "__main__":
TS = twitterstream()
TS.stream_tweets()
After trying multiple solutions like upgrading/ downgrading tweepy, rewriting code with different approch I keep on getting same error is
Traceback (most recent call last):
File "/Users/dishant/Documents/603_data/manisha/projectfiles/producer_a.py", line 96, in <module>
TS.stream_tweets()
File "/Users/dishant/Documents/603_data/manisha/projectfiles/producer_a.py", line 86, in stream_tweets
listener_data = ListenerTS('consumer_key', 'consumer_secret', 'access_token','access_token_secret')
TypeError: Stream.__init__() takes 3 positional arguments but 5 were given