HTTP-запрос с использованием Python в Windows иногда дает WinError 100601

Я впервые пробую 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

Вы используете https. Установлены ли на вашем компьютере с Windows соответствующие сертификаты?

John Gordon 16.01.2019 02:09
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
1
87
1

Ответы 1

Можете ли вы конкретизировать «иногда», как часто вы пытаетесь вызывать URL-адреса? Удалось ли вам иногда получать результаты?

Я предполагаю, что серверы работают. Каждый раз, когда вы выполняете request.get, создается tcp-соединение, и когда вы многократно вызываете request.get, он создает несколько tcp-подключений, что снижает производительность и может привести к ошибкам HTTPSConnectionPool. Вы можете попробовать Сеанс запроса Python, он сохранит TCP-соединение, созданное для повторного использования.

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

dksr 17.01.2019 07:25

Вы проверили, установлены ли у вас надлежащие сертификаты, как это было предложено @John Gordon

aja 20.01.2019 07:21

Другие вопросы по теме