Бюджет:
10 000 руб
Собрать полный архив всех публикаций из списка профессиональных Telegram-каналов в сфере электроэнергетики. Данные нужны для последующего анализа, мониторинга публикаций и новостей.
Список каналов предоставляется в приложенном файле.
Все каналы открытые / публичные, но исполнитель должен быть подписан на них через свой аккаунт Telegram.
Период сбора: с момента создания канала (максимально доступная глубина истории, которую отдаёт Telegram) по 31 марта 2026 года включительно.
Срок выполнения работы: до 5 апреля 2026 включительно.
Требования к результату:
1. Структура хранения
- Результат предоставляется в виде архива (или нескольких архивов) с папками каналов, JSON-файлами и файлами документов.
- Для каждого канала создаётся отдельная папка с именем, соответствующим юзернейму канала (например, eprussia).
- Внутри папки несколько JSON-файлов, если возникнут сложности с размером, рекомендуется разбить по периодам (по месяцам или годам), например: eprussia/2025_01.json, eprussia/2025_02.json и т.д.
- Медиафайлы (картинки, видео, звук) не сохранять.
- Приложенные документы (формат pdf, doc, docx, xls, xslx, ppt, pptx, txt) сохраняются в подпапке /doc внутри папки канала. Например:
eprussia/doc/info.pdf
2. Формат JSON
Каждый JSON-файл содержит массив объектов, соответствующих постам. Поля объекта:
- channel_name — название канала (строка)
- channel_username — юзернейм канала (строка, например @eprussia)
- post_id — идентификатор сообщения в Telegram (число)
- date — дата и время публикации в формате, отдаваемом системой
- text — текст сообщения (строка, если нет текста — пустая строка). Желательно сохранять исходное форматирование (Telethon предоставляет поле message.text с эмодзи и переносами строк).
- forwarded_from — если это перепост, указать название исходного канала/чата (строка), иначе null
- hashtags — массив строк, содержащих все хештеги, найденные в тексте (например, ["#энергетика", "#новости"]).
- links — массив объектов со ссылками, найденными в тексте: [{"url": "https://...", "text": "отображаемый текст ссылки"}, ...]
- doc_files — массив объектов, описывающих все прикреплённые к посту файлы-документы, которые были сохранены. Каждый объект содержит: путь к файлу относительно папки канала (например, "doc/info.pdf"). Если медиа нет — пустой массив.
3. Технические требования к исполнителю:
- Опыт работы с Telegram API (библиотека Telethon на Python — предпочтительно, либо аналоги).
- Понимание механизмов ограничения Telegram (FloodWait, лимиты на запросы) и умение их корректно обрабатывать (автоматические паузы, повторные попытки).
- Надёжное соединение с Telegram (при необходимости — использование proxy/VPS, особенно если из вашего региона доступ затруднён).
- Учёт возможного большого объёма данных: глубокая история каналов может содержать тысячи постов. Исполнитель должен оценить необходимые ресурсы (дисковое пространство, время) и предложить стратегию (например, поэтапная выгрузка).
- Предоставление промежуточного результата (например, данные по 2–3 каналам за один месяц) для проверки соответствия формату до полной сдачи.
- Внимание: учитывайте риски недоступности/замедления доступа в вашем регионе!