Skip to content

Instantly share code, notes, and snippets.

@Melevir Melevir/styleru_py_hw_3.md Secret
Last active Jun 22, 2017

Embed
What would you like to do?

В этот раз у нас напряжённый график: надо поработать с АПИ Вконтакте, стащить оттуда нужные данные и сделать боте в Телеграме, который эти данные будет выдавать.

Бот новостной: ты ему говоришь /python_news, а он тебе выдаёт случайную сегодняшнюю публикацию про Питон в одной из тематических групп.

В задаче две части: сбор данных и телеграм-бот.

Задание ещё меньше формализовано, чем предыдущее, всё как в жизни.

  1. Освоиться с АПИ Вконтакте ============================

Надо разобраться с тем, как ползоваться АПИ Вконтакте. Если нужна авторизация – разобраться с ней. Для запросов к АПИ Вконтакте из Питона лучше использовать знакомый уже requests.

Если можешь из Питона вытащить информацию о своём профиле – дело сделано.

Вот доки: https://vk.com/dev/

  1. Найти группы, которые будем мониторить =========================================

Теперь надо найти тематические группы Вконтакте. Это группы, в которых есть хотя бы по одному посту в день и которые про Питон. Надо собрать как минимум десяток подходящих групп.

Было бы классно отфильтровать всякие группы с платным решением заданий или группы, которые "просто" про программирование – едва ли в них проскакивают интересные нам новости.

На выходе – json-файлик с айдишниками нужных групп.

  1. Написать парсер постов из нужных групп =========================================

Следующий скрипт идёт по группам из файлика предыдущего задания и вытаскивает все посты, которые были опубликованы в день запуска скрипта.

На выходе – файлик с нужной информацией о постах.

При этом если запустить скрипт дважды, новые посты должны добавиться в файл, а старые – не дублироваться.

Сами посты должны быть про Питон. Идеально было бы фильтровать только новостные посты.

  1. Освоиться с АПИ Телеграма ============================

Пришло время АПИ Телеграма. Надо сделать две вещи: зарегистрировать бота и запустить эхобота.

Зарегистрировать бота – значит, создать своего бота в Телеграме и получить его ключ доступа.

Запустить эхобота – значит, запустить тестового бота, который отвечает тем же, что ты ему написал. Прям реально запустить, чтобы можно было ему написать в Телеграме и увидеть ответ.

Понятное дело, что бот будет на Питоне. Для удобного доступа к АПИ Телеграма будем использовать библиотеку python-telegram-bot. Эхобот – один из примеров в репозитории, достаточно скопировать файл с исходниками нужного бота.

Не продолжай делать задания, пока твой собственный бот не ответил тебе в Телеграме.

Что будет, если спросить бота, когда скрипт не запущен? Запущен? Что там в коде? А что, если расставить кучу принтов и узнать, в каких переменных что живёт? Ты ж собрал голема из грязи и палок. Классно было бы поглядеть, что у него внутри и как это работает.

  1. Научить бота выдавать новости ================================

Осталось соеденить бота в Телеграме и скрипт выдачи новостей про Питон.

Возмём бота из предыдущего задания, удалим из него бесполезную функцию эхо-ответа и добавим нужную функцию получения случайной сегодняшней новости из файла, созданного в задании 2.

Бот должен уметь понимать комманду /python_news и выдавать на неё случайную сегодняшнюю новость.

В новости должен быть анонс (первые пара предложений, например) и ссылка на полную новость Вконтакте.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.