Перейти к основному содержимому

Домашнее задание 5: Асинхронное программирование

📚 Лекция: Асинхронное программирование

Дедлайн

8 дней с момента занятия.

Задача 5.1: Асинхронное скачивание картинок

Асинхронное скачивание картинок/файлов с picsum.photos (этот сайт отдаёт каждый раз уникальные картинки).

Сделать Python-скрипт, которому можно указать количество отличных друг от друга файлов, которые нужно загрузить в нужную папку. Использовать aiohttp.

Важно

Не используйте блокирующий код при написании тасок для асинхронного выполнения.

Задача 5.2: Асинхронный скрапер

Асинхронный скрапер объявлений на съём жилья с cian.ru | realty.yandex.ru | avito.ru.

  • Скачивание основной информации
  • Сохранение в удобном для использования формате
  • Автоматический поиск новых объявлений с некоторой периодичностью

Задача 5.3: База данных и Telegram-бот

Реализация БД (можно просто хранить файлы) для хранения данных от скрапера.

Реализация Telegram-бота (aiogram), в котором можно подписаться на конкретные запросы (фильтры) по съёму жилья. При появлении в базе подходящего объявления — присылать информацию об объявлении, ссылку на объявление.

В идеале — завернуть всю программу в Docker, чтобы можно было развернуть на удалённом сервере.

Безопасность токенов

Осторожнее относитесь к своим токенам и не сливайте их в сеть! Используйте переменные окружения или .env файлы (добавленные в .gitignore).