当前位置: 首页 > 知识库问答 >
问题:

使用Python中的“urllib.request.urlretrieve”下载图像失败

邵劲
2023-03-14

如果可能,也指出解决方案

我的代码

import random
import urllib.request

def download_web_image(url):
    name = random.randrange(1,1000)
    fullname = str(name) + ".jpg"
    urllib.request.urlretrieve(url, fullname)

download_web_image("https://upload.wikimedia.org/wikipedia/commons/b/b4/JPEG_example_JPG_RIP_100.jpg")

错误:

回溯(最近一次调用):文件“/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/urllib/request.py”,第1318行,do_open encode_chunked=req。has_header('Transfer-encoding'))文件“/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/http/client.py”,第1239行,请求自身_send_request(method,url,body,headers,encode_chunked)文件“/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/http/client.py”,第1285行,位于_send_request self中。endheaders(body,encode_chunked=encode_chonked)文件“/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/http/client.py”,第1234行,位于endheaders-self中_send_output(message_body,encode_chunked=encode_chonked)文件“/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/http/client.py”,第1026行,在_send_output self中。send(msg)文件“/Library/Frameworks/Python.Frameworks/Versions/3.6/lib/python3.6/http/client.py”,第964行,在send-self中。connect()文件“/Library/Frameworks/Python.Frameworks/Versions/3.6/lib/python3.6/http/client.py”,第1400行,在connect server_hostname=server_hosdname)文件“/Library/Fromeworks/Python.Frameworks/Versions/3.6/lib/ppython3.6/ssl.py”的第407行,在wrap_socket_context=self,_session=session)文件“/Library/Framworks/Python.framework/Versions=3.6/lib/python3.6/ssl.py”,第814行,在init self中。do_handshake()文件“/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/ssl.py”,第1068行,位于do_handhake self.sslobj中。do_handshake()文件“/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/ssl.py”,第689行,位于do_handhake self.sslobj中。do_handshake()ssl。SSLError:[SSL:CERTIFICE_VERIFY_FAILED]证书验证失败(_SSL.c:777)

在处理上述异常期间,发生了另一个异常:

回溯(最近一次调用最后):文件“/用户/麦金塔/皮查姆项目/克拉库拉托勒/巴基.py”,第9行,download_web_image(“https://upload.wikimedia.org/wikipedia/commons/b/b4/JPEG_example_JPG_RIP_100.jpg”)文件“/用户/麦金塔什/皮查姆项目/克拉库拉托勒/巴基.py”,第7行,在download_web_image urllib.request.urlretrieve(网址,全名)文件“/库/框架/蟒蛇.框架/版本/3.6/lib/python3.6/urllib/请求.py”,第248行,在网址检索contextlib.close(urlopen(url, data)) 作为 fp: 文件 “/库/框架/Python.框架/版本/3.6/库/蟒蛇3.6/urllib/请求.py”, 第 223 行, 在 urlopen 返回打开器中打开(url, data, timeout) 文件 “/库/框架/Python.框架/版本/3.6/lib/python3.6/urllib/请求.py”, 第 526 行, 在打开响应 = self._open(req, data) 文件 “/库/框架/版本/3.6/lib/python3.6/urllib/请求.py”, 第 544 行, 在_open“_open”中,req) 文件“/库/框架/Python.framework/Versions/3.6/lib/python3.6/urllib/request.py”,第 504 行,_call_chain结果 = func(*args) 文件“/库/框架/Python.framework/Versions/3.6/lib/python3.6/urllib/请求.py”,第 1361 行,在https_open上下文中=self._context,check_hostname=self._check_hostname) 文件“/库/框架/Python.framework/Versions/3.6/lib/python3.6/urllib/请求.py”,第 1320 行, in do_open raise URLError(err) urllib.error.URLError:

进程完成,退出代码1

共有2个答案

简嘉赐
2023-03-14

你只需要使用命令:

 /Applications/Python\ 3.6/Install\ Certificates.command
潘皓
2023-03-14

试试这个它对我有用:

import random
import urllib.request

def download_web_image(url):
    name = random.randrange(1,1000)
    fullname = str(name) + ".jpg"
    urllib.request.urlretrieve(url, fullname)

print(download_web_image("https://upload.wikimedia.org/wikipedia/commons/b/b4/JPEG_example_JPG_RIP_100.jpg"))

这输出:没有,但没关系!

该文件与脚本保存在同一目录中。

 类似资料:
  • 在处理上述异常时,又发生了一个异常: 回溯(最近一次调用):文件“/users/macintosh/pycharmprojects/claculatorer/bucky.py”,第9行,在download_web_image(“https://upload.wikimedia.org/wikipedia/commons/b/b4/jpeg_example_jpg_rip_100.jpg”)中;文件

  • 问题内容: 我正在尝试编写一个脚本来使用node.js下载图像。这是我到目前为止的内容: 但是,我想使它更强大: 有图书馆这样做并且做得更好吗? 响应头是否有可能说谎(关于长度,关于内容类型)? 我还应该关注其他状态代码吗?我应该麻烦重定向吗? 我想我读过某个地方会不赞成使用编码。那我该怎么办? 我怎样才能在Windows上使用它? 还有其他方法可以使此脚本更好吗? 原因:对于类似于imgur的功

  • 问题内容: 我正在尝试使用我的应用程序中的URL和按钮下载图像。当我在手机上运行它时,我无法下载该图像。任何人都可以指出这个问题。我在这里先向您的帮助表示感谢 :) 这是我的代码。 问题答案: 您可以通过两种方式从url下载图像 1。您 可以使用Glide库从url加载图像,看下面的代码,它可以轻松地为您提供帮助 编译这个库 而不是像这样加载图像 2。如果您不想使用第三方库,请尝试此 创建一个异步

  • 问题内容: 我正在尝试使用的模块从网络下载并保存图像。 这是我使用的(工作)代码: 你能帮助我从响应中使用什么属性吗? 问题答案: 你可以使用对象,也可以遍历响应。 默认情况下,使用类似文件的对象不会解码压缩的响应(使用GZIP或deflate)。你可以通过将属性设置为True(requests将其设置False为控制自身解码)来强制为你解压缩。然后,你可以使用将数据流式传输到文件对象: 要遍历响

  • 以下是我正在使用的完整Extendscript代码。 提前谢了。

  • 本文向大家介绍Python3 urllib.request.urlretrieve如何下载文件或图片以及如何使用代理?,包括了Python3 urllib.request.urlretrieve如何下载文件或图片以及如何使用代理?的使用技巧和注意事项,需要的朋友参考一下 使用urllib.request.urlretrieve方式: 如果要使用代理,需要先导入:socket和httplib2.so