urllib无法下载某些图像

时间:2019-02-03 13:06:22

标签: python urllib

我正在尝试从特定网站下载图像,尽管该链接有效并且可以通过chrome浏览器访问,但似乎无法使用urllib下载图像。我试图弄清楚为什么会发生这种情况以及如何解决它。

这些是我得到的错误:

raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 403: Forbidden

代码:

import requests
import urllib.request
import os
myPath2 = "C:\\Users\\Admin\\Desktop\\aaa\\test"
filename = "just_a_test"
fullfilename = os.path.join(myPath2, filename)
urllib.request.urlretrieve("https://image.prntscr.com/image/Vje0uwk0Rv6GpEyTTpKJ7g.png", fullfilename + ".png")

1 个答案:

答案 0 :(得分:1)

该站点由于用户代理而拒绝了该请求,该用户代理将该请求标识为来自urllib。尝试将其更改为传统浏览器,如以下示例所示:

opener = urllib.request.build_opener()
opener.addheaders = [
    (
        "User-Agent",
        "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36",
    )
]
urllib.request.install_opener(opener)

urllib.request.urlretrieve(
    "https://image.prntscr.com/image/Vje0uwk0Rv6GpEyTTpKJ7g.png", fullfilename + ".png"
)