提问人:God's Scourge 提问时间:10/5/2023 最后编辑:CallMeStagGod's Scourge 更新时间:10/6/2023 访问量:26
来自频道帖子的 Python 解析器注释
Python parser comments from channel post
问:
我正在做我的解析器机器人,从电报帖子下的评论中获取随机消息
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 链接和任何评论的评论。我希望机器人在与他聊天时回复消息(用户和机器人)。所以我需要从机器人重新发送带有文件和等的消息
一切>无济于事
答: 暂无答案
评论