API потокового Twitter не получает все ретвиты - PullRequest
2 голосов
/ 04 мая 2020

Я использую потоковый API, чтобы следовать указанному c идентификатору пользователя, и я могу выполнять потоковую передачу без каких-либо проблем. Однако, когда я сравниваю все потоковые твиты, собранные за один день, с теми, что были собраны с остальным API, кажется, что потоковый API пропустил некоторые ретвиты , то есть твиты из идентификатора пользователя, которые кто-то ретвитнул.

Я бы ожидал, что твиты из остальных API будут отсутствовать из-за удаленного контента, но я не могу понять, почему в потоковой передаче будут отсутствовать твиты.

Я проверил, и я не достигаю ограничения скорости (все твиты, собранные в течение дня, менее 200), соединение не было прервано, я пробовал разные дни, и оно всегда отсутствует примерно на 25% ретвитов. Другие типы твитов отсутствуют.

Любая помощь очень ценится!

class StreamListener(tweepy.StreamListener):

    def __init__(self, output_file=sys.stdout):
        super(StreamListener,self).__init__()

    def on_status(self, status):
        with open('tweets.json', 'a') as tf:

            json.dump(status._json, tf)    

            tf.write('\n')

        print(status.text)

    def on_error(self, status_code):
        if status_code == 420:
            return False


stream_listener = StreamListener()
stream = tweepy.Stream(auth=api.auth, listener=stream_listener)
stream.filter(follow=<id>)
...