Парсинг Twitter без использования Twitter API (Руководство 2022)
Table Of Content
- Обзор
- Преимущества использования "Twint"
- Некоторые ограничения "Twint"
- О версии Python
- Учебник по "Twint"
- DownGit
- Создать ссылку на загрузку каталога GitHub
- Установка "Twint"
- Импорт "Twint"
- Настройка параметров поиска
- Сохранение результатов в объект "DataFrame" библиотеки "Pandas"
- Экспорт в файл ".csv"
- Заключительные замечания
Обзор
В этом руководстве я научу вас, как парсить твиты Twitter с помощью Twint - инструмента, написанного на Python, который парсит твиты без использования Twitter API.
Преимущества использования "Twint"
- Может получить почти все твиты (Twitter API ограничивает только последние 3200 твитов).
- Быстрая начальная настройка.
- Может использоваться анонимно и без регистрации в Twitter.
- Нет ограничений по скорости.
Некоторые ограничения "Twint"
Проект Twint на данный момент, кажется, заброшен разработчиками. Последнее обновление проекта было около 1 года назад, и в текущей версии есть некоторые ошибки, из-за которых инструмент непригоден к использованию. Я сделал форк проекта и исправил некоторые из этих ошибок с помощью комментариев сообщества к открытым проблемам.
О версии Python
Twint требует Python 3.6 ~ 3.8 (рекомендуется Python 3.8). Вы можете установить Python 3.8 или создать виртуальное окружение с использованием venv
или pyenv-virtualenv
.
Учебник по "Twint"
Я создал Python Notebook, который содержит весь код, используемый для этого учебника. Вы можете скачать его здесь:
DownGit
Создать ссылку на загрузку каталога GitHub
minhaskamal.github.io
Установка "Twint"
Установите Twint с помощью pip
с использованием следующей команды:
pip install --upgrade git+https://github.com/kevctae/twint.git
Обратите внимание, что ссылка не является ссылкой на репозиторий оригинального проекта, а является ссылкой на мой форк репозитория. Это связано с тем, что исходный код содержит ошибки, из-за которых инструмент невозможно использовать. Мой форк репозитория исправил некоторые из этих проблем._
Импорт "Twint"
Для запуска простой программы парсинга сначала нужно импортировать пакет.
import twint
Для тех, кто использует Python Notebook, перед запуском любого поиска с помощью Twint, необходимо применить nest_asyncio
.
import nest_asyncio
nest_asyncio.apply()
Этот код решает проблемы совместимости с блокнотами и ошибки RunTime.
Настройка параметров поиска
Для запуска поиска сначала нужно создать объект конфигурации.
config = twint.Config()
Затем нужно настроить объект config
в соответствии с вашим запросом. В этом примере я буду парсить твиты @elonmusk, используя ключевое слово tesla. Я также ограничу поиск 20 твитами.
config.Username = "elonmusk"
config.Search = "tesla"
config.Limit = 20
Для запуска поиска выполните следующий код:
twint.run.Search(config)
Этот код выведет результаты поиска в консоль.
Чтобы узнать о других настройках, которые можно применить к вашему поиску, вы можете посетить эту статью, которая предоставляет все переменные с их описанием.
Сохранение результатов в объект "DataFrame" библиотеки "Pandas"
Pandas - это мощный инструмент, который позволяет манипулировать данными для анализа. Чтобы сохранить результаты в объект "DataFrame", сначала нужно импортировать Pandas.
import pandas as pd
Также необходимо добавить следующую переменную в конфигурации:
config.Pandas = True
Теперь можно запустить поиск с новыми конфигурациями. Twint автоматически сохранит объект "DataFrame" в twint.storage
. Чтобы получить объект "DataFrame", используйте следующий код:
df = twint.storage.panda.Tweets_df
Теперь у вас будет объект "DataFrame" в переменной df
.
Экспорт в файл ".csv"
Чтобы экспортировать в файл .csv, добавьте следующие переменные в конфигурации:
config.Store_csv = True
config.Output = "Output.csv"
Это экспортирует результаты в указанный путь после запуска поиска.
Заключительные замечания
Спасибо за то, что следовали этому руководству. Я надеюсь, что оно поможет вам начать ваш следующий проект по анализу данных без проблем!