代码之家  ›  专栏  ›  技术社区  ›  God's Scourge

通道帖子中的Python解析器评论

  •  0
  • God's Scourge  · 技术社区  · 2 年前

    我在做我的解析器机器人程序,从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的消息

    一切>没有什么帮助

    0 回复  |  直到 2 年前