gpt4 book ai didi

python - 如何在 Python 3 中使用 https URL 下载图像?

转载 作者:行者123 更新时间:2023-11-28 19:47:27 25 4
gpt4 key购买 nike

我尝试用 Python 编写一个简短的批量下载脚本来在本地存储图像列表。

对于 http 图片 url,它工作得很好,但是无法下载任何带有 https url 的图片。有问题的代码行是:

import urllib.request
urllib.request.urlretrieve(url, filename)

例如,https://cdn.discordapp.com/attachments/299398003486097412/303580387786096641/FB_IMG_1490534565948.jpg 导致 HTTP Error 403: Forbidden,以及任何其他 https 图片。

这留给我两个问题:

  1. 如何使用 Python 下载这样的图像?
  2. 如果图像基本上只是文件,为什么它们甚至有 https url?

编辑:

这是堆栈跟踪:

Traceback (most recent call last):
File "img_down.py", line 52, in <module>
main()
File "img_down.py", line 38, in main
save_img(d, l)
File "img_down.py", line 49, in save_img
stream = read_img(url)
File "img_down.py", line 42, in read_img
with urllib.request.urlopen(url) as response:
File "D:\Users\Jan\AppData\Local\Programs\Python\Python36-32\lib\urllib\request.py", line 223, in urlopen
return opener.open(url, data, timeout)
File "D:\Users\Jan\AppData\Local\Programs\Python\Python36-32\lib\urllib\request.py", line 532, in open
response = meth(req, response)
File "D:\Users\Jan\AppData\Local\Programs\Python\Python36-32\lib\urllib\request.py", line 642, in http_response
'http', request, response, code, msg, hdrs)
File "D:\Users\Jan\AppData\Local\Programs\Python\Python36-32\lib\urllib\request.py", line 570, in error
return self._call_chain(*args)
File "D:\Users\Jan\AppData\Local\Programs\Python\Python36-32\lib\urllib\request.py", line 504, in _call_chain
result = func(*args)
File "D:\Users\Jan\AppData\Local\Programs\Python\Python36-32\lib\urllib\request.py", line 650, in http_error_default
raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 403: Forbidden

最佳答案

希望这对您有所帮助。

import requests
with open('FB_IMG_1490534565948.jpg', 'wb') as f:
f.write(requests.get('https://url/to/image.jpg').content)

关于python - 如何在 Python 3 中使用 https URL 下载图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43462896/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com