Ваш код выдает это сообщение об ошибке:
tweepy.error.TweepError: Twitter error response: status code = 429
Это сообщение об ошибке связано с ' Too Many Requests. '
Эта ошибка выдается, когда вы исчерпали свой лимит скорости. См. Ссылки в Твиттере ниже для подробностей об ограничениях скорости.
ОБНОВЛЕНИЕ ОДНОГО К ВАШЕМУ КОДУ
Изменить эту строку кода:
api=tweepy.API(auth)
до:
api= tweepy.API(auth, wait_on_rate_limit=True)
ОБНОВЛЕНИЕ ВТОРОГО К ВАШЕМУ КОДУ
Я также изменил эту строку кода:
tweets = tweepy.Cursor(api.search,
q=str(n) + '-filter:retweets',
lang='en',
since='2018-01-01').items(10000)
к этому:
# note the count, which helped increase performance.
tweets = tweepy.Cursor(api.search,
q=str(n) + '-filter:retweets',
count=100,
since='2018-01-01',
lang="en").items(500)
КОММЕНТАРИИ
10 ключевых слов, которые у вас есть в search_list, должны быть скорректированы. Я проверил их в Твиттере, и результаты оказались ложными.
Когда я устанавливаю предел элемента в 500, я все равно не получаю 500 твитов на название компании, указанное в списке поиска. Одно название компании дало только 207 результатов.
Я бы порекомендовал протестировать каждую компанию, чтобы определить, сколько твитов вы можете собрать.
Ваш код не записывает собранные твиты в файл. Я бы порекомендовал написать твиты с именем файла - company_name_MMDDYYYY.txt. Это позволит вам выполнять вторичную обработку, не собирая твиты снова и снова.
Я бы записал все элементы данных анализа настроений в один файл CSV.
В целом ваш исходный код работает быстрее с этими двумя модификациями, но он все еще нуждается в доработке с вашей стороны. СЧАСТЛИВЫЙ КОДИНГ ...
ССЫЛКИ НА ТВИТЕР
Twitter API возвращает коды состояния HTTP
Ограничение скорости
Стандартные ограничения по API
Стандартный API поиска