Python - Ошибка 404 при парсинге сайта в телеботе
Пытаюсь в телеботе сделать парсинг сайта через API, но когда запрос был введён,бот выводит ошибку 404 .
Запрос передаётся через обработчик сообщений.
Если этот парсер будет сделан в консольном приложении или через TKinter он будет отлично работать, я так понимаю, что запрос неправильно передаётся в другую функцию, как бы это можно было бы исправить?
Вот код:
import requests
import telebot
from bs4 import BeautifulSoup
token = "1886531469:AAGpg2lFas1O_MBLA0SKh15JRASbqmubZp4"
bot = telebot.TeleBot(token)
@bot.message_handler(commands=["start"])
def start(message):
msg = bot.send_message(message.chat.id, "Введите запрос")
bot.register_next_step_handler(msg, info)
def info(message):
req = requests.get("https://plati.io/api/search.ashx?",
params= {
"query" : message,
"visibleOnly" : "true",
"response": "json"
})
ans = req.json()["items"]
for i in ans:
bot.send_message(message.chat.id, i["name"])
bot.polling()
Ответы (1 шт):
Автор решения: EmiAsk
→ Ссылка
Ты передаёшь в параметрах запроса (params) по ключу query объект сообщения, а не его текст. Верный вариант выглядит так:
def info(message: telebot.types.Message):
req = requests.get("https://plati.io/api/search.ashx",
params= {
"query" : message.text,
"visibleOnly" : "true",
"response": "json"
})