Я пытаюсь транслировать 10 твитов, отслеживая определенную тему, в этом примере я отслеживаю "Трампа".Приведенный ниже код работает, так как он возвращает 10 статусов, но записывает только один из статусов в CSV и, что еще более странно, записывает его 10x и в случайной части строки 400, подобной CSV, например.
Что я делаю не так?
import setup
import csv
import tweepy
from tweepy import StreamListener
class Streamer(StreamListener):
def __init__(self):
super().__init__()
self.counter = 0
self.limit = 10
def on_status(self, status):
statuses = []
if status.retweeted or "RT @" in status.text:
return
while len(statuses) < self.limit and status.lang == "en":
self.counter += 1
print(status)
statuses.append(status)
with open("my_csv_file", "a") as f:
writer = csv.writer(f)
for status in statuses:
writer.writerow([status.user.screen_name, status.text, status.created_at, status.user.location,
status.id_str])
if len(statuses) == self.limit:
print("*** Limit of " + str(self.limit) + " met ***")
return False
if len(statuses) > self.limit:
streaming.disconnect()
streaming = tweepy.Stream(auth=setup.api.auth, listener=Streamer())
stream_data = streaming.filter(track=["Trump"])