Как правильно загрузить изображение из Интернета, используя urllib.request в python3.7 - PullRequest
0 голосов
/ 04 февраля 2019

Я пытаюсь загрузить изображение из Интернета, используя python 3.7.Но я получаю некоторую ошибку в своем коде и не могу понять, что не так в моем коде и как его восстановить.Я использую PyCharm 3.4 и MacOS X:

Мой код:

import urllib.request
urllib.request.urlretrieve("http://www.digimouth.com/news/media/2011/09/google-logo.jpg", "local-filename.jpg")

Ошибка

urllib.error.URLError: <urlopen error [Errno 65] No route to host>

Ответы [ 2 ]

0 голосов

Просто используйте urllib.request.urlretrieve(url=link, filename=output), ваш подход правильный.Если url является изображением, вы загружаете изображение.Если url является HTML-файлом, вы загружаете HTML-файл.

Ваша ошибка urllib.error.URLError: <urlopen error [Errno 65] No route to host> заключается в том, что ваша ссылка неработающая .urlretrieve работает только для неработающих ссылок.Кроме того, urlretrieve считается принадлежащим устаревшему интерфейсу.

К сожалению, вы ничего не можете сделать, чтобы исправить URL-адрес "http://www.digimouth.com/news/media/2011/09/google-logo.jpg", и это также кажется подозрительным.

0 голосов
/ 05 февраля 2019

Код, который вы указали, работает для другой картинки, например:

import urllib.request
urllib.request.urlretrieve("https://www.google.com/url?sa=i&source=images&cd=&cad=rja&uact=8&ved=2ahUKEwi7nsiIqqXgAhUnuqQKHY6uDa4QjRx6BAgBEAU&url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FGiraffe&psig=AOvVaw1g8lkjuT8Ly2FxVhGp1vp6&ust=1549481373274429", "giraffe.jpg")

Проблема с вашей ссылкой, так как http://www.digimouth.com/news/media/2011/09/google-logo.jpg кажется мертвым.Даже wget http://www.digimouth.com/news/media/2011/09/google-logo.jpg не работает в терминале, и Chrome не может открыть эту ссылку должным образом.Поэтому я предлагаю выбрать другое изображение.

Об ошибке SSL см .: https://stackoverflow.com/a/28052583/8565438

...