HTTP-запрос с использованием Python в Windows иногда дает WinError 100601 - PullRequest
0 голосов
/ 16 января 2019

Я впервые пробую 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 с ошибкой:

reports.exceptions.ConnectionError: HTTPSConnectionPool (host = 'randomuser.me', port = 443): превышено максимальное количество попыток с помощью url: /img/creator_keith.png (вызвано NewConnectionError (': не удалось установить новое соединение: [WinError 10061] Невозможно установить соединение, поскольку целевая машина активно от него отказалась »,))

Я понимаю, что это может быть проблема с брандмауэром или прокси. Но мой вопрос, почему это работает для некоторых сайтов, но не для других? Кстати, это прекрасно работает для url_1 и url_2 в Linux.

Спасибо заранее, dksr

1 Ответ

0 голосов
/ 16 января 2019

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

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

...