Извлекаем полезную информацию из Telegram на Python. Часть 1
Для автоматизации задач сбора информации из каналов, групп, чатов в Telegram, помимо официального API, существуют различного рода и направленности, как платные так и бесплатные, инструменты и библиотеки. В данном цикле заметок рассмотрим примеры работы с популярной Python библиотекой Telethon в контексте извлечения полезных данных из публичных просторов мессенджера.
Для удобства исходники выложены в репозиторий на gitverse.
📌 Задача
Выгрузить все изображения (документы, аудиофайловы) из открытого Telegram-канала в автоматическом режиме.
📌 Рабочая станция
Виртуальная машина с Debian 12 на борту.
📌 Подготовка
-
Для начала получим параметры для доступа к
API Telegram-
Идем в кабинет и авторизовываемся.
-
На странице API development tools создаем новое приложение и забираем
App api_idиApp api_hash.
-
-
Устанавливаем необходимые для работы пакеты
1
sudo apt install git python3 python3-pip python3-venv -y
- Скачиваем демонстрационный проект с
gitverse
1
git clone https://gitverse.ru/desoft/telethoner.git
- Создаем виртуальное окружение и подгружаем зависимости
1
2
3
4
cd telethoner
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
- В скрипте
downloader.pyпрописываем полученные ранееApp api_idиApp api_hashв константыAPI_IDиAPI_HASHсоответственно.
📌 Использование
- При первом запуске для получения доступа к
API Telegramнеобходимо будет войти под своей учетной записью в интерактивном режиме (вводим номер телефона, получаем и заполняем код).
1
2
3
Please enter your phone (or bot token): +7...............
Please enter the code you received: 00000
Signed in successfully as <USER>;
В корне создастся файл с расширением .session, который будет использоваться для автоматической аутентификации при последующих запусках.
-
В качестве примера добавлена обработка трех видов контента - документы, фото и музыка, что соответствует значениям
document, photo, musicпараметраcontent_type. -
Запускаем
1
2
# скачиваем 10 прикрепленных изображений к последним постам в Telegram-канале Хабра
python3 downloader.py --channel_url=https://t.me/habr_com --content_type=photo --path_data_folder=myfolder --limit=10
