下载图像但 urllib.error.HTTPError

Download an image but urllib.error.HTTPError

我正在尝试使用 Python 下载图像,但出现错误 "HTTP Error 403: Forbidden"。我不知道该怎么做才能解决这个问题。这是我的代码:

import urllib.request as req
imgurl ="http://www.example.com/image.jpg"
req.urlretrieve(imgurl, r"C:\Users\home\Desktop\images\image_name.jpg")

看来 urllib 的默认用户代理是罪魁祸首。如果您将其更改为传统浏览器之一,它可以工作:

>>> opener = req.build_opener()
>>> opener.addheaders = [('User-Agent', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36')]
>>> req.install_opener(opener)
>>> req.urlretrieve(imgurl, r"img.jpg")
('img.jpg', <http.client.HTTPMessage object at 0x7f75aaf05a90>)