Я впервые пробую Python в Windows. Я хочу загрузить файл png из Интернета. Вот программа Python3:
import requests
url_1 = 'https://ichef.bbci.co.uk/news/660/cpsprodpb/9FB3/production/_105038804_titled-624-nc.png'
url_2 = 'https://randomuser.me/img/creator_keith.png'
res = requests.get(url_1)
print (res.status_code)
# Lets try for url_2
res = requests.get(url_2)
print (res.status_code)
Это работает для url_1, но не работает для url_2 с ошибкой:
requests.exceptions.ConnectionError: HTTPSConnectionPool(host='randomuser.me', port=443): Max retries exceeded with url: /img/creator_keith.png (Caused by NewConnectionError(': Failed to establish a new connection: [WinError 10061] No connection could be made because the target machine actively refused it',))
Я понимаю, что это может быть проблема с брандмауэром или прокси-сервером. Но у меня вопрос: почему на одних сайтах это работает, а на других - нет? Кстати, это отлично работает для url_1 и url_2 в Linux.
Заранее спасибо, dksr






Можете ли вы конкретизировать «иногда», как часто вы пытаетесь вызывать URL-адреса? Удалось ли вам иногда получать результаты?
Я предполагаю, что серверы работают. Каждый раз, когда вы выполняете request.get, создается tcp-соединение, и когда вы многократно вызываете request.get, он создает несколько tcp-подключений, что снижает производительность и может привести к ошибкам HTTPSConnectionPool. Вы можете попробовать Сеанс запроса Python, он сохранит TCP-соединение, созданное для повторного использования.
Я имею в виду, что это работает для некоторых URL-адресов, но не для других. Я думал, что это проблема прокси / брандмауэра. Но в этом случае он не будет работать для всех URL-адресов. Я также подумал, что это может быть для разных типов файлов, которые я пытался загрузить (например, csv, png и т. д.), Но он работает для некоторых png и не работает для некоторых.
Вы проверили, установлены ли у вас надлежащие сертификаты, как это было предложено @John Gordon
Вы используете
https. Установлены ли на вашем компьютере с Windows соответствующие сертификаты?