VK API на Python: часть 3, делаем чат-бота

3
19836
Добавить в избранное

В этой части туториала по VK API мы продолжим с помощью Python разбирать возможности ВК для разработчиков и сделаем небольшого чат-бота-автоответчика.

Бот будет выполнять некоторые действия в ответ на полученное сообщение. Например, отправлять в ответ на команду ~bash~, случайную цитату с bash.im. Для этого бота, кроме знаний питона и работы с VK API, нужны хотя бы начальные знания по парсингу. В данном случае нам понадобится requests + lxml.

Настройка

Прежде всего, нужно написать код для отлова нужных сообщений. Получать уведомления мы будем с помощью messages.get, используя last_message_id.

Парсим Баш

Теперь нужно написать функции для получения цитаты из Баша.

С помощью XPath мы получаем текст из контейнера div, содержащий в себе первую цитату на странице. Найти путь нужный вам элемент можно в инструментах разработчика вашего браузера, но почти всегда понадобится «допилить» до нужного вида и убрать лишние теги, вроде <br/>.

Исправим цикл проверки сообщений, заменив заглушку на готовую функцию:

Сейчас все должно работать. Но есть одно но. Если кто-то в коллективном чате напишет ~bash~, то цитата отправится к нему в личные сообщения, а не в общий чат. Надо поправить.

Интерфейс пользователя

На основе этого парсера можно приготовить свой собственный, для любимого ресурса. Но давайте добавим еще немного функционала к нашей программе.

Таким образом, набор доступных команд можно будет расширить в соответствие с функциями, которые вы добавите к парсеру или не только к нему.

Интересуетесь программированием на Python?

Подпишитесь на нашу рассылку, чтобы получать больше интересных материалов:

И не беспокойтесь, мы тоже не любим спам. Отписаться можно в любое время.




Комментариев: 3

  1. а как найти другие части ?

  2. Как убрать эту ошибку? :

    Traceback (most recent call last):
    File «C:/Users/MURAD/PycharmProjects/untitled5/d.py», line 12, in
    response = vk.method(‘messages.get’, values)
    File «C:\Users\MURAD\PycharmProjects\untitled5\venv\lib\site-packages\vk_api\vk_api.py», line 621, in method
    raise error
    vk_api.exceptions.ApiError: [100] One of the parameters specified was missing or invalid: all values except 8 are deprecated for ‘filter’ parameter

    А то она уже по горло!

    1. Привет, ответ в отчете об ошибке: видимо, у вк изменилось апи, и нужно иначе передавать параметры.

Добавить комментарий