Как сделать чтобы бот работал при выключенном компьютере?

Отправить бота в облака.
P.S. Это не шутка. Бот — это приложение, а приложение не может работать, когда компьютер выключен. Запустите его на виртуальном хостинге.
Ответ написан более трёх лет назад
Комментировать
Нравится 5 Комментировать

Залить бота на сервер, например Heroku.
Ответ написан более трёх лет назад
Нравится 2 3 комментария
А как быть если у бота есть функционал использующий библиотеку Selenium?
Переписывать весь код под другие библиотеки типа requests + BeautifulSoup не вариант (вариант, конечно, но хочется другого решения).
Только покупать какой-нибудь выделенный сервер аля «дедик»?

Tihon49, я думаю автору вопроса «Как сделать чтобы бот работал при выключенном компьютере?» херока подойдет на 100%
Андрей Колечко, Heroku не будет работать с Selenum. И в заголовке вопроса не весь вопрос. Или ты тупо лайков зашел получить и пишешь не в тему одно и тоже?
Андрей Смирнов @GameDev_Easy
Сегодня я пишу на змеях.
Бот — приложение, по определённым протоколам общается с Telegram.
Приложение не может работать при выключенном устройстве.
Вариант 1. Залить бота на сервер
Вариант 2. Тупо не выключать компьютер
Вариант 3. Купить отдельный компьютер (именно системник, без монитора и т.д.), подключить к своему монитору, один раз настроить, отсоединить монитор и больше никогда не выключать.
Вариант 4. Залить на сервер / воспользоваться конструктором ботов
Не получается сделать так чтобы бот ТГ работал постоянно. Запускаю файл через папку с кодом main.py, открывается код в редакторе VScode

текст, выделенный жирным шрифтом
Отслеживать
задан 8 сен 2022 в 13:56
Бойцовский клуб Бойцовский клуб
1 1 1 серебряный знак 2 2 бронзовых знака
Чтобы бот работал «постоянно» — запускайте свой скрипт как сервис/процесс, но при этом ваш компьютер всегда должен оставаться включенным. Если не хотите «жертвовать» компьютером для этих целей, то ищите бесплатные/платные хостинги и там разворачивайте своего бота. А так, чтобы в VS Code запустить код, закрыть программу/выключить компьютер и при этом бот будет продолжал работать — это так не работает, кто-то же должен выполнять ваш код
8 сен 2022 в 14:14
спасибо теперь буду знать )
Как сделать так, чтобы бот работал постоянно?
Что нужно сделать, чтобы бот работал на постоянке, даже если я выключал бы свой пк/посоветуйте какие нибудь сервисы,если такие знаете.
Отслеживать
задан 18 июл 2022 в 16:34
Marco Polo Marco Polo
17 2 2 золотых знака 2 2 серебряных знака 6 6 бронзовых знаков
Yandex.Cloud, Sbercloud?
18 июл 2022 в 16:45
Запускать на компьютере, который не выключается (например, на сервере)
18 июл 2022 в 16:46
а на каком сервере?(если знаете)
18 июл 2022 в 16:50
На любом какой вам понравится, хостингов слишком много, чтобы советовать какой-то конкретный
18 июл 2022 в 16:51
Бесплатный с ограничением по времени работы, (можно вписаться, если не сильно нагруженный) с хорошей документацией heroku
18 июл 2022 в 18:53
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
Для этого нужно использовать любой из существующих хостингов. Например google cloud, если ваш бот не большой. В противном случае придется пользоваться платными хостингами.
Отслеживать
5,383 2 2 золотых знака 10 10 серебряных знаков 26 26 бронзовых знаков
ответ дан 18 июл 2022 в 16:59
root_of_the_live root_of_the_live
67 11 11 бронзовых знаков
Я воспользовался сервисом https://www.pythonanywhere.com там все бесплатно и понятно. Регистрируешься, затем добавляешь файлы с ботом в раздел Files и после запускаешь.
Отслеживать
48.7k 17 17 золотых знаков 56 56 серебряных знаков 100 100 бронзовых знаков
ответ дан 17 авг 2022 в 5:05
1 1 1 бронзовый знак
Highly active question. Earn 10 reputation (not counting the association bonus) in order to answer this question. The reputation requirement helps protect this question from spam and non-answer activity.
- python
- telegram-bot
- telegram
- telebot
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.1.26.3951
Запускаем телеграм-бота на сервере
Тогда он будет работать круглые сутки, а вы — отдыхать.
Не так давно мы создали телеграм-бота на Python: можно было написать ему свой знак зодиака, а он в ответ давал предсказание о долгой счастливой жизни. Но у бота есть недостаток: он работает, пока запущена программа на нашем компьютере. Если мы её остановим или выключим компьютер, бот тоже перестанет отвечать на сообщения.
Вот что мы сделаем, чтобы бот работал независимо от всего:
- Выберем сервер.
- Подготовим программу для работы на нём.
- Зальём программу на сервер.
- Настроим сервер, чтобы он исполнял программу.
Выбираем сервер
Нам нужен сервер, который умеет работать с Python и запускать файлы программы автоматически. На самом деле он у нас уже есть — на нём крутится сайт mihailmaximov.ru. Если вы всё пропустили — держите подборку:
- что такое домен и как его получить;
- делаем страницу «О себе»;
- как опубликовать свой сайт в интернете.
Тот хостинг, который мы выбрали для проектов, уже умеет запускать Python-файлы. Если вы пользуетесь другим сервисом, то проверьте, умеет ли он то же самое.
Готовим программу и отправляем её на сервер
Единственное, что нужно добавить в наш код телеграм-бота, — специальную команду интерпретатору, чтобы он знал, как работать с нашим файлом. Но перед этим нужно проверить, какая версия Python на нём установлена.
Чтобы это узнать, соединимся с сервером по протоколу SSH и спросим у него напрямую. Для этого используем программу Putty, а настройки подключения возьмём в личном кабинете хостинга:

Вставляем их в Putty и подключаемся. Помните, что для безопасности во время ввода пароля курсор стоит на месте, чтобы никто не смог выяснить, сколько символов вы набираете. Когда подключились, вводим команду python3.3 -V — она покажет, есть ли на сервере поддержка этой версии Python:

Теперь добавляем в самое начало нашего файла с программой такую строчку:
В статье о том, как опубликовать сайт в интернете, мы рассказывали, как залить файлы на сервер. Это умение нам сейчас пригодится: сохраняем нашу программу с гороскопом как файл с расширением .py и отправляем его на сервер в папку cgi-bin (то, что лежит в этой папке, никто не увидит):

Настраиваем сервер
Теперь научим сервер понимать, как работать с нашей программой. Для этого в корне сайта находим файл .htaccess и добавляем в него такую строчку:
AddHandler cgi-script .py
Если у вас такого файла нет — создайте его и не забудьте про точку в самом начале названия.
Последнее, что осталось сделать, — настроить права доступа у файла с программой. Находим её среди файлов хостинга и выставляем права 755 или rwxrwxr-x:

Теперь с помощью Putty снова подключаемся к серверу и настраиваем рабочее окружение. Это как будто виртуальная песочница, где мы сможем ставить нужные модули для Python, чтобы не мешать остальным пользователям сервера.
Всё, что мы будем делать дальше, относится к хостингу SpaceWeb. Если у вас другой хостинг, то, возможно, часть команд вам не пригодится и Python будет работать напрямую. У нас так не работает, поэтому делаем виртуальное окружение.
В SSH-терминале пишем по очереди такие команды (вместо .thecode можно написать название каталога, которое вам по душе):
virtualenv .thecode source .thecode/bin/activate
Эти две команды создадут виртуальное пространство для запуска Python-файлов.
Теперь установим Python-модуль для работы с Телеграмом:
pip install pytelegrambotapi
Когда установка закончится, пишем такую команду:
nohup python3 /home/t/thecode/osebe/public_html/cgi-bin/telegoroskop.py
/home/t/thecode/osebe/ — это наш путь к папке cgi-bin, а у вас он будет другим. Поменяйте путь на свой и запускайте.
Чтобы программа продолжала работать после того, как мы закроем SSH-клиент, в самом начале пишем команду nohup .
Результат проекта — бот @TheCode_Baboolya_bot.
Что дальше
Мы сделали самые базовые вещи — запустили скрипт на сервере и сделали так, чтобы он работал там постоянно. Но вот как можно это улучшить:
- сделать так, чтобы программа сама перезапускалась, если остановится;
- написать отдельный сервис, через который мы сможем запускать и останавливать бота;
- прикрутить этот сервис к другому телеграм-боту, чтобы в итоге боты управляли всем миром.
Апскиллинг, как говорится
Апскиллинг — это, например, переход с уровня junior на уровень middle, а потом — senior. У «Яндекс Практикума» есть курсы ровно для этого: от алгоритмов и типов данных до модных фреймворков.

Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.