У меня есть список из 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.