Всякий раз, когда пользователь входит в мое приложение и выполняет поиск, я должен запускать потоковый API для получения требуемых им данных.
Вот мой класс API потока
import tweepy
import json
import sys
class TweetListener(tweepy.StreamListener):
def on_connect(self):
# Called initially to connect to the Streaming API
print("You are now connected to the streaming API.")
def on_error(self, status_code):
# On error - if an error occurs, display the error / status code
print('An Error has occured: ' + repr(status_code))
return False
def on_data(self, data):
json_data = json.loads(data)
print(json_data)
Вот мой файл кода Python, который вызывает класс выше, чтобы начать потоковую передачу Twitter
import tweepy
from APIs.StreamKafkaApi1 import TweetListener
consumer_key = "***********"
consumer_secret = "*********"
access_token = "***********"
access_secret = "********"
hashtags = ["#ipl"]
def callStream():
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_secret)
api = tweepy.API(auth,wait_on_rate_limit=True)
tweetListener = TweetListener(userid,projectid)
streamer = tweepy.Stream(api.auth, tweetListener)
streamer.filter(track=hashtags, async=True)
if __name__ == "__main__":
callStream()
Но если я нажму более двух раз, мое приложение вернет код ошибки 420 .
Я думал изменить API (используя несколько ключей) используется для извлечения данных всякий раз, когда возникает ошибка 420.
Как получить сообщение об ошибке с помощью on_error метода TweetListener класса в def callStream ()