Тайм-аут после запроса URL-адреса - PullRequest
0 голосов
/ 27 мая 2020

В настоящее время у меня есть некоторый код, который разработан, чтобы попытаться выполнить запрос URL-адреса, и если возникнут какие-либо исключения, чтобы подтвердить их и продолжить.

    try:
        x = requests.get(URL)

    except requests.exceptions.Timeout:
        print('timeout error, proceed to next URL')
    except requests.exceptions.TooManyRedirects:
        print('too many redirects, proceed to next URL')
    except requests.exceptions.RequestException:
        print('request exception, proceed to next URL')

Однако с оператором try иногда URL-адрес будет будет запрошен, и запрос будет go в течение многих часов и никогда не будет генерировать исключение тайм-аута. По сути, он переходит в try и выполняет requests.get (URL) и просто застревает. Не уверен, почему это происходит.

Как я могу заставить его перехватить ошибку тайм-аута, чтобы он не зависал и просто двигался дальше через заданное время (например, 10 секунд или что-то в этом роде)?

Изменить: URL-адреса являются действительными URL-адресами, которые ссылаются на реальные веб-сайты, и l oop настроен правильно, это не проблема.

1 Ответ

1 голос
/ 27 мая 2020

Объект запроса принимает различные параметры, одним из которых является timeout. Если вы не передаете никакого значения, по умолчанию значение равно None, что означает, что запрос завершится только при закрытии соединения. Поэтому попробуйте указать в своем запросе настраиваемый тайм-аут. Я думаю, что 10 секунд должно хватить на go.

...