Парсинг футбольных твитов с использованием Snsscraper и Python
Table Of Content
Существует множество библиотек для парсинга Twitter, среди самых популярных - Tweepy и Twint, но на мой взгляд лучше всего работает snsscraper, созданный JustAnotherArchivist.
Мы собираемся использовать его код, но с небольшим изменением, чтобы пройтись по разным месяцам и получить временной ряд данных. Я использовал это для недавнего проекта в колледже, чтобы парсить 10 000 твитов в день, но тогда я не использовал цикл, поэтому сохранение данных и повторный запуск были довольно ручными, но здесь мы будем использовать формулу для указания количества дней в будущем!
Темой будет Жозе Моуриньо, который на момент написания статьи завоевал первый трофей Ромы за десятилетие и стал первым тренером, выигравшим все доступные ему европейские трофеи.
Установка
Рекомендуется использовать версию для разработки, которую можно установить в блокнотах Jupyter с помощью следующей команды:
!pip install git+https://github.com/JustAnotherArchivist/snscrape.git
Использование
После успешной установки мы можем создать следующее:
-
Импортировать необходимые библиотеки.
-
Создать функцию TweetScrape, которая принимает следующие параметры:
- Day: Целое число от 1 до 31
- Month: Целое число от 1 до 12
- Year: Целое число, например 2022
- num_tweets_per_day: Целое число
- total_tweets: Целое число
- Обратите внимание, что функция предназначена для перехода на предыдущие дни после указанной начальной даты. Таким образом, она будет перемещаться вперед на x количество дней, основываясь на значении формулы: общее количество дней для перехода в будущее = общее количество твитов / количество твитов в день. Например, 100/20 = 5 дней.
Функция использует счетчик для увеличения общего количества собранных твитов и индикатор прогресса для обновления вас о его статусе. Раскомментируйте команду to_csv и укажите локальный диск для экспорта csv-файла. В противном случае, фрейм данных будет доступен локально как глобальная переменная.
В этом примере я установил 2000 твитов в день с максимальным количеством 4000, что означает, что мы будем перемещаться вперед на два дня. Я указал это для начала 24 мая 2022 года.
Поскольку текущая дата - 27 мая 2022 года, я не могу перейти дальше этой даты. Попробуйте несколько диапазонов и дайте мне знать, что вы думаете! После извлечения твитов мы можем выполнить множество задач по анализу данных, таких как обработка естественного языка и анализ настроений.
Вот как должен выглядеть ваш конечный результат при вызове dataframe или dataframe.head()
Подписывайтесь на меня, чтобы получать больше статей, связанных с футболом!