Запросы - Не удалось установить sh новое соединение: [Errno 8] имя узла или имя сервера указано или не известно » - PullRequest
0 голосов
/ 10 января 2020

У меня есть список из 2500 URL, для которых я пытаюсь получить текстовые данные, используя.

def request_until_succeed(url):
    connection_success = False
    tries = 1
    while connection_success is False:
        request = requests.session()
        retry = Retry(connect=3, backoff_factor=0.5)
        adapter = HTTPAdapter(max_retries=retry)
        request.mount('http://', adapter)
        request.mount('https://', adapter)
        try:
            request = requests.get(url, verify=False)
            connection_success = True
        except Exception as e:
            time.sleep(5*tries)
            tries += 1
            print('\n Retrying connection for {url}: \n {error}:'.format(url=url, error=e))
    return request

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

requests.exceptions.ConnectionError: HTTPSConnectionPool(host='www.WEBSITE.com', port=443): Max retries exceeded with url: /REST/OF/URL (Caused by NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x131fd5eb8>: Failed to establish a new connection: [Errno 8] nodename nor servname provided, or not known'))

Большая проблема в том, что я не могу воспроизвести ошибку, так как включение 220-го URL-адреса по отдельности в функцию, которую я использовал выше, работает нормально, поэтому я отбросил любую проблемы с моим IP или этим конкретным URL.

Я не использую прокси, VPN или что-то еще, и, как вы можете видеть, я перезапускаю сеанс запросов для каждого URL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...