繁体   English   中英

如何使用 Python 3.7 中的“urllib.request”从网络正确下载图像?

[英]How to download an image properly from the web using 'urllib.request' in Python 3.7?

我尝试使用 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>

你的方法是正确的。 但是,链接本身已失效; 因此错误。

只需使用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 ”,现在它似乎也很可疑。

您提供的代码适用于不同的图片,例如:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM