Не работает парсинг в боте aiogram когда пишешь текст выдает новости только в консоли а в бота не выдает
from aiogram import Bot, types
from aiogram.dispatcher import Dispatcher
from aiogram.utils import executor
from bs4 import BeautifulSoup
import requests
bot = Bot(token='')
dp = Dispatcher(bot)
#команда старт
@dp.message_handler(commands=['start'])
async def start(message: types.message):
await bot.send_message(message.chat.id, 'Привет я бот который выдаст тебе самые актуальные новости, просто напиши "Новости"')
#парсер
@dp.message_handler(content_types=['text'])
async def get_news(message):
url = 'https://news.rambler.ru'
page = requests.get(url)
soup = BeautifulSoup(page.text, "html.parser")
filteredNews = []
allNews = soup.findAll('a', class_='_6bF6i')
for data in allNews:
if data.find('div', class_='_1tnKf') is not None:
filteredNews.append(data.text)
for data in filteredNews:
print(data)
return filteredNews
@dp.message_handler()
async def pars(message: types.message):
await bot.send_message(get_news)
if __name__ == '__main__':
executor.start_polling(dp, skip_updates=True)
Ответы (1 шт):
Автор решения: modeller
→ Ссылка
Вместо
print - await message.answer(data).
Ну и await bot.send_message(get_news) вызывается с параметром message.