помогите, пожалуйста
я только начинаю заниматься телеграмм ботами, нужен совет, правильно ли я сделал, если нет, пожалуйста скажите как исправить, просто уже не знаю что делать. Мне не понятно почему, когда я запускаю бота и присылаю ему сообщение "Привет" он через 1 минуту мне ничего не присылает, хотя для парсинга у меня даже отрыт браузер для того, чтобы парсер смог работать P.S: токен бота я сделал в отдельном файле, который называется конфиг, в начале я его импортировал.
import telebot
import config
import schedule
import time
from bs4 import BeautifulSoup
import requests
bot = telebot.TeleBot(config.TOKEN)
@bot.message_handler(content_types=["text"])
def get_text_message(message):
if message.text == "Привет":
def job():
url = "https://currency.com/ru/btc-to-usd?utm_course=rbc&utm_campaign=quote"
response = requests.get(url)
soup = BeautifulSoup(response.text, "lxml")
main = soup.find("strong", class_ = 'table-instruments__price')
print(main.text)
schedule.every(1).minutes.do(job)
while True:
schedule.run_pending()
time.sleep(1)
я хочу сделать так, чтобы когда я запускал этот файл и писал телеграмм боту "Привет", начинал работать парсер и бот мне отвечал
Ответы (1 шт):
Когда создаешь телеграмм ботов, дискорд ботов и так далее, ты работаешь с асинхронными функциями(работают независимо друг от друга). Модули time и schedule можно только использовать не в асинхронных функциях, ибо, фактически, с помощью этих модулей ты останавливаешь всю программу, а не только время для одной функции(а в этом случае команды). Для реализации программы придётся изучить документацию aiocron для планирования задач (а в этом случае каждую минуту). Модули time И schedule надо обязательно убирать.
К сожалению, не я не очень знаком с библиотекой телеграмм бота, поэтому здесь я помочь не очень сильно могу. Я бы сделал так: человек отправлял бы команду, бот бы записывал id человека в базу данных, а потом уже с помощью отдельной функции, запланированной на каждую минуту, можно было бы всем отправлять данные всем подписавшимся. (Так как бот будет хоститься на Heroku, то и там же можно будет подключить базу данных)Надеюсь, что помог!