【问题标题】:How to download an image properly from the web using 'urllib.request' in Python 3.7?如何使用 Python 3.7 中的 'urllib.request' 从 Web 正确下载图像?
【发布时间】:2019-02-04 04:28:05
【问题描述】:

我尝试使用 Python 3.7 从 Web 下载图像。但是我的代码中有一些错误,我无法理解我的代码有什么问题以及如何恢复它。 我使用 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>

【问题讨论】:

    标签: python download pycharm urllib python-3.7


    【解决方案1】:

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

    只需使用urllib.request.urlretrieve(url=link, filename=output),您的方法是正确的。如果url 是图像,则下载图像。如果url 是 HTML 文件,则下载 HTML 文件。

    您的错误urllib.error.URLError: &lt;urlopen error [Errno 65] No route to host&gt; 是因为您的链接损坏urlretrieve 仅适用于未损坏的链接。此外,urlretrieve 被认为属于旧版界面。

    很遗憾,您无法修复 URL“http://www.digimouth.com/news/media/2011/09/google-logo.jpg”,而且现在看起来也很可疑。

    【讨论】:

      【解决方案2】:

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

      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

      【讨论】:

      • ,,,我将您的链接复制并粘贴到我的代码中,但这次出现以下错误:urllib.error.URLError: &lt;urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1045)&gt;
      • 不,代码仍然无法从给定网站下载图像:我添加了以下内容:import sslcontext = ssl._create_unverified_context()
      猜你喜欢
      • 2019-06-25
      • 1970-01-01
      • 2013-03-28
      • 2020-04-09
      • 2020-07-20
      • 1970-01-01
      • 1970-01-01
      • 2019-05-03
      • 2022-12-12
      相关资源
      最近更新 更多