Повторять запросы пока не будет получен ответ
У меня есть зацикленная программа, которая в начале каждого цикла делает запросы на 3 сайта, получает оттуда данные, иногда какой-то сайт может не отвечать. Мне нужно, чтобы программа после любого неудачного получения данных ждала 5 секунд и отправляла заново запрос и как только получила - сразу продолжала дальше код.
Мой код:
session = requests.Session()
while True:
try:
a = session.get('a.com',timeout=7).json()
b = session.get('b.com',timeout=7).json()
c = session.get('c.com',timeout=7).json()
except Exception:
while Exception:
sleep(5)
a = session.get('a.com',timeout=7).json()
b = session.get('b.com',timeout=7).json()
c = session.get('c.com',timeout=7).json()
# тут дальше идет код, взаимодействующий с полученными данными
Ответы (1 шт):
Автор решения: Сергей Ш
→ Ссылка
def res(url, session):
while True:
try:
a = session.get(url, timeout=7).json()
return a
except Exception:
sleep(5)
session = requests.Session()
urls = ['a.com', 'b.com', 'c.com']
for url in urls:
a = res(url, session)