у меня есть парсер для циана и яндекс недвижимости, и мне надо сделать так чтобы он не выключался после того как отработал

from time import sleep
import requests
from getDb import check_database


def get_json():
    params = (
    ('roomsTotal', ['1', '2', '3', 'PLUS_4', 'STUDIO']),
    ('sort', 'DATE_DESC'),
    ('agents', 'NO'),
    ('rgid', '566725'),
    ('type', 'SELL'),
    ('category', 'APARTMENT'),
    ('_pageType', 'search'),
    ('_providers', 
        ['seo', 'queryId', 'forms', 'filters', 'filtersParams', 'direct', 'mapsPromo', 'newbuildingPromo', 
        'refinements', 'search', 'react-search-data', 'searchHistoryParams', 'searchParams', 'searchPresets', 
        'serpDirectPicType', 'showSurveyBanner', 'seo-data-offers-count', 'related-newbuildings', 'breadcrumbs', 
        'ads', 'categoryTotalOffers', 'footer-links', 'site-special-projects']),
    ('crc', 'y2885b8f687621a9ca16dc212bfe09da7'),
    )

    proxies = {'http': '37.9.38.240:8000'}
    auth = requests.auth.HTTPProxyAuth('Ajbh3a', 'YnUUf1')
    response = requests.get('https://realty.yandex.ru/gate/react-page/get/', params=params, proxies=proxies, auth=auth)
    data = response.json()

    return data
    sleep(60)


def get_offer(item):
    offer = {}

    offer["url"] = item["shareUrl"]
    offer["offer_id"] = item["offerId"]

    offer_date = ''
    if item.get("updateDate"):
        offer_date = item["updateDate"].replace('T', ' ').replace('Z', '')
    else:
        offer_date = item["creationDate"].replace('T', ' ').replace('Z', '')
    offer["date"] = offer_date

    offer["price"] = item["price"]["value"]
    offer["address"] = item["location"]["address"]
    offer["area"] = item["area"]["value"]
    offer["rooms"] = item["roomsTotalKey"]
    offer["floor"] = item["floorsOffered"][0]
    offer["total_floor"] = item["floorsTotal"]

    return offer


def get_offers(data):
    entities = data["response"]["search"]["offers"]["entities"]
    for item in entities:
        offer = get_offer(item)
        check_database(offer)
        # break


def main():
    data = get_json()
    get_offers(data)
    sleep(60)


if __name__ == '__main__':
    while main(): pass

после того как main отработал, он выключается, как это исправить, запускаю через консоль виндовса.


Ответы (2 шт):

Автор решения: Сергей Шашко
if __name__ == '__main__':
   while  True:
       main()
→ Ссылка
Автор решения: eri
if __name__ == '__main__':
    while main(): pass

При таком варианте продолжать или нет решает main. Нужно вернуть True чтоб продолжить, например, с проверкой если что-то сломалось:

def main():
    try:
       ....
    except:
       return False
    finaly:
       sleep(60)
    return True
→ Ссылка