@Peins

Как при нажатии Inline кнопки отправить пользователю новости с группы вк (парсинг)?

Новичок Python. Как сделать, чтобы при нажатии inline кнопки пользователю высылались новости с группы вк?
Мне нужно чтобы парсер находил ключевое слово (я выбрал метод wall_search), затем запись поста с ключевым словом отправлял пользователю когда тот нажмет на кнопку. Парсер должен передавать текст и по возможности картинку.Как это сделать?

Если запускать парсер отдельно от бота, то через дебагер группа вк парсится отлично.
Как парсер засунуть в бота?

Вот кодовая часть, помогите пожалуйста.

import logging
import config
import requests
from aiogram import Bot, Dispatcher, executor, types

logging.basicConfig(level=logging.INFO)
bot = Bot(token=config.API_TOKEN)
dp = Dispatcher(bot)

@dp.message_handler(commands=['start'])
async def welcome(message):
    sti = open("img/what.webp", "rb")
    await bot.send_sticker(message.chat.id, sti)
    await bot.send_message(message.chat.id, "Привет, меня зовут ПРК-БОТ, я создан для сбора информации с сайта колледжа!")
    await bot.send_message(message.chat.id, "Чтобы начать тыкай  '/menu'.")

@dp.message_handler(commands=['menu'])
async def main_menu(message):
    parser = types.InlineKeyboardMarkup()
    button1 = types.InlineKeyboardButton(text='Новости', callback_data='news')
    parser.add(button1)
    await bot.send_message(message.chat.id, 'Ты перешел в меню! Теперь нажми на любую из кнопок, чтобы найти информацию!', reply_markup=menu)

@dp.callback_query_handler(lambda call: True)
async def parser_vk(call):
    if call.data == 'news':

        token = "token...."
        version = "5.92"
        domain = "perm_college_radio"
        dop = 20
        query = "Внимание"
        offset = 0
        all_posts = []

        while offset < 100:
            otvet = requests.get('https://api.vk.com/method/wall.search',
                                 params={
                                     "access_token": token,
                                     "v": version,
                                     "domain": domain,
                                     "count": dop,
                                     'query': query,
                                     'offset': offset
                                 }
                                 )

            data = otvet.json()['response']['items']
            offset += 20
            all_posts.extend(data)
  • Вопрос задан
  • 217 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы