来自频道帖子的 Python 解析器注释

Python parser comments from channel post

提问人:God's Scourge 提问时间:10/5/2023 最后编辑:CallMeStagGod's Scourge 更新时间:10/6/2023 访问量:26

问:

我正在做我的解析器机器人,从电报帖子下的评论中获取随机消息

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 链接和任何评论的评论。我希望机器人在与他聊天时回复消息(用户和机器人)。所以我需要从机器人重新发送带有文件和等的消息

一切>无济于事

python-3.x 解析 电报 机器人

评论


答: 暂无答案