Разверните простого Python бота - PullRequest
0 голосов
/ 28 мая 2020

Код:

    import requests as rq
    from bs4 import BeautifulSoup as bs

    url = "https://apod.nasa.gov/apod/astropix.html"
    page = rq.get(url).content
    soup = bs(page, 'html.parser')
    response = soup.find('img')
    if response == None:
        imglink = soup.find('iframe')['src']
    else:
        imglink = 'https://apod.nasa.gov/apod/' + response['src']
    def main():
        sess = rq.Session()
        cid='**************'
        turl = 'https://api.telegram.org/bot*******************/'
        if response == None:
            imglink = soup.find('iframe')['src']
            params = {'chat_id':cid,'text':imglink}
            sess.post(turl + 'sendMessage', data=params)
        else:
            imglink = 'https://apod.nasa.gov/apod/' + response['src']
            title = soup.find('b').get_text()
            params = {'chat_id':cid,'photo':imglink,'caption':title}
           sess.post(turl + 'sendPhoto', data=params)

    if __name__ == '__main__':
        main()

Это простой бот для отправки изображения НАСА в мой телеграмм канал. Я буду модифицировать этот сценарий, чтобы это происходило каждый день. Но его вопрос в том, где я их размещу, чтобы он работал постоянно (бесплатно). Как правильно это сделать.

Ответы [ 2 ]

0 голосов
/ 28 мая 2020

Посмотрите, соответствует ли https://www.heroku.com уровень бесплатного пользования вашим потребностям.

  1. Если это так, создайте репозиторий git в вашем каталоге с помощью:
git init
В вашем каталоге вместе со скриптом .py создайте файл с именем Procfile и поместите в него:
worker: python your_script_name_here.py
В https://dashboard.heroku.com/apps/ создайте новое приложение (верхний правый угол). Настроить git remote для указания на Heroku: https://devcenter.heroku.com/articles/git#creating -a-heroku-remote Pu sh изменяется из локального репозитория на Heroku с помощью :
git push origin heroku 
Настройте надстройку Heroku Scheduler. Запланируйте выполнение задания каждые 10 минут, каждый час или один раз в день.
0 голосов
/ 28 мая 2020

Я не знаю ни одного провайдера, который бы разместил это бесплатно. Для дешевых AWS и Google Cloud предлагают простые решения.

Пример: https://cloud.google.com/blog/products/application-development/how-to-schedule-a-recurring-python-script-on-gcp

...