Чат-бот, написанный на Python, который должен работать в Telegram, не ищет статьи на сайте IEEE Spectrum. ⇐ Python
Чат-бот, написанный на Python, который должен работать в Telegram, не ищет статьи на сайте IEEE Spectrum.
Мне нужно создать бота, который будет искать статьи на сайте IEEE Spectrum после того, как пользователь введет ключевые слова. Бот должен работать в Telegram. Но при поиске статей бот мне всегда выдает По вашему запросу результатов не найдено.. Хотя статьи на сайте есть, я проверил. Почему бот работает некорректно?
импортировать телеграмму из telegram.ext import Updater, CommandHandler запросы на импорт из bs4 импорт BeautifulSoup # функция, которая будет активирована при получении команды def start (обновление, контекст): update.message.reply_text( «Здравствуйте! Я помогу вам найти статьи на сайте IEEE Spectrum». «Просто напишите /search и после этого ключевые слова для поиска».) # функция, которая включится при получении текстового сообщения поиск по определению (обновление, контекст): запрос = " ".join(context.args) если запрос == "": update.message.reply_text('Для поиска необходимо ввести ключевые слова после команды /search') возвращаться # сайт, на котором будем искать статьи URL = 'https://spectrum.ieee.org' # запросим сайт по ключевым словам ответ = запросы.get(url+'/search?keywords=' + запрос) если ответ.код_статуса == 200: # анализ html-страницы с помощью BeautifulSoup суп = BeautifulSoup(response.content, 'html.parser') # ищем статьи на странице результатов поиска статьи = суп.select('.search-result') если len(статьи) > 0: за статью в статьях: title =article.select_one('.search-result-title a').text href =article.select_one('.search-result-title a')['href'] сообщение = f'{title}\n{url}{href}' update.message.reply_text(сообщение) еще: update.message.reply_text('По вашему запросу результаты не найдены.') еще: update.message.reply_text('Ошибка при запросе сайта IEEE Spectrum.') # создаём бота и подключаемся к Telegram API bot_token = '6437672171:AAGVvRu4UNg2eR3ZinB7Ovd0NUk9ctNAVo8' updater = Updater(token=bot_token, use_context=True) диспетчер = updater.dispatcher #добавляем обработчики команд и текстовых сообщений start_handler = CommandHandler('старт', старт) search_handler = CommandHandler('поиск', поиск) диспетчер.add_handler(start_handler) диспетчер.add_handler(search_handler) #запускаем бота updater.start_polling() updater.idle() Я пытался что-то сделать, но ничего не получилось
Мне нужно создать бота, который будет искать статьи на сайте IEEE Spectrum после того, как пользователь введет ключевые слова. Бот должен работать в Telegram. Но при поиске статей бот мне всегда выдает По вашему запросу результатов не найдено.. Хотя статьи на сайте есть, я проверил. Почему бот работает некорректно?
импортировать телеграмму из telegram.ext import Updater, CommandHandler запросы на импорт из bs4 импорт BeautifulSoup # функция, которая будет активирована при получении команды def start (обновление, контекст): update.message.reply_text( «Здравствуйте! Я помогу вам найти статьи на сайте IEEE Spectrum». «Просто напишите /search и после этого ключевые слова для поиска».) # функция, которая включится при получении текстового сообщения поиск по определению (обновление, контекст): запрос = " ".join(context.args) если запрос == "": update.message.reply_text('Для поиска необходимо ввести ключевые слова после команды /search') возвращаться # сайт, на котором будем искать статьи URL = 'https://spectrum.ieee.org' # запросим сайт по ключевым словам ответ = запросы.get(url+'/search?keywords=' + запрос) если ответ.код_статуса == 200: # анализ html-страницы с помощью BeautifulSoup суп = BeautifulSoup(response.content, 'html.parser') # ищем статьи на странице результатов поиска статьи = суп.select('.search-result') если len(статьи) > 0: за статью в статьях: title =article.select_one('.search-result-title a').text href =article.select_one('.search-result-title a')['href'] сообщение = f'{title}\n{url}{href}' update.message.reply_text(сообщение) еще: update.message.reply_text('По вашему запросу результаты не найдены.') еще: update.message.reply_text('Ошибка при запросе сайта IEEE Spectrum.') # создаём бота и подключаемся к Telegram API bot_token = '6437672171:AAGVvRu4UNg2eR3ZinB7Ovd0NUk9ctNAVo8' updater = Updater(token=bot_token, use_context=True) диспетчер = updater.dispatcher #добавляем обработчики команд и текстовых сообщений start_handler = CommandHandler('старт', старт) search_handler = CommandHandler('поиск', поиск) диспетчер.add_handler(start_handler) диспетчер.add_handler(search_handler) #запускаем бота updater.start_polling() updater.idle() Я пытался что-то сделать, но ничего не получилось
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение