我在做我的解析器机器人程序,从telegram帖子下的评论中获得随机消息
import aiogram
from aiogram import Bot, Dispatcher, executor, types
import os
import requests
from bs4 import BeautifulSoup
import random
# Создаем ÑкземплÑÑ Ð±Ð¾Ñа и диÑпеÑÑеÑа
bot = Bot(token=os.getenv('TOKEN'))
dp = Dispatcher(bot)
# СловаÑÑ Ð´Ð»Ñ Ñ
ÑÐ°Ð½ÐµÐ½Ð¸Ñ URL полÑзоваÑелей
user_urls = {}
@dp.message_handler(commands=['start'])
async def start(message: types.Message):
await message.reply("ÐÑивеÑ! ÐведиÑе URL, ÑÑÐ¾Ð±Ñ Ð¿Ð¾Ð»ÑÑиÑÑ ÑлÑÑайнÑй комменÑаÑий.")
@dp.message_handler(lambda message: message.text.startswith('https://t.me/'))
async def process_url(message: types.Message):
url = message.text
comments = get_comments(url)
if comments:
random_comment = random.choice(comments)
await message.reply(f"СлÑÑайнÑй комменÑаÑий:\n{random_comment}")
else:
await message.reply("ÐомменÑаÑии не найденÑ.")
# СоÑ
ÑанÑем URL полÑзоваÑелÑ
user_urls[message.from_user.id] = url
# ÐÑоÑим полÑзоваÑÐµÐ»Ñ Ð²Ð²ÐµÑÑи новÑй URL или ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ /start
await message.reply("ÐведиÑе новÑй URL или оÑпÑавÑÑе /start Ð´Ð»Ñ Ð½Ð°Ñала заново.")
def get_comments(url):
try:
response = requests.get(url)
if response.status_code == 200:
soup = BeautifulSoup(response.text, 'html.parser')
comments = soup.find_all('div', class_='tgme_widget_message_text')
comment_texts = [comment.get_text() for comment in comments]
return comment_texts
else:
return []
except Exception as e:
print(e)
return []
if __name__ == '__main__':
executor.start_polling(dp, skip_updates=True)
我没有从url链接和任何它得到评论。我想机器人在和他(用户和机器人)聊天时回复消息。所以我需要从bot重新发送带有文件和e.t.c的消息
一切>没有什么帮助