Как сделать, чтобы запросы продолжали пытаться соединиться с URL независимо от того, где он остановился в списке? - PullRequest
0 голосов
/ 30 августа 2018

У меня есть список идентификаторов, которые я передаю в URL в цикле for:

L = [1,2,3]
lst=[]
for i in L:
    url = 'URL.Id={}'.format(i)
    xml_data1 = requests.get(url).text
    lst.append(xml_data1)
    time.sleep(1)
    print(xml_data1)

Я пытаюсь создать попытку / перехват, где, независимо от ошибки, библиотека запросов продолжает пытаться подключиться к URL-адресу с идентификатора, который был исключен из списка (L), как мне это сделать?

Я настроил эту попытку / поймать из этого ответа ( Правильный способ попробовать / кроме использования модуля запросов Python? )

Однако это вынуждает систему выйти.

try:
    for i in L:
        url = 'URL.Id={}'.format(i)
        xml_data1 = requests.get(url).text
        lst.append(xml_data1)
        time.sleep(1)
        print(xml_data1)
except requests.exceptions.RequestException as e:
    print (e)
    sys.exit(1)

1 Ответ

0 голосов
/ 30 августа 2018

Вы можете поместить блок try-except в цикл и только break цикл, когда запрос не вызывает исключение:

L = [1,2,3]
lst=[]
for i in L:
    url = 'URL.Id={}'.format(i)
    while True:
        try:
            xml_data1 = requests.get(url).text
            break
        except requests.exceptions.RequestException as e:
            print(e)
    lst.append(xml_data1)
    time.sleep(1)
    print(xml_data1)
...