【问题标题】:urllib can't download certain imagesurllib 无法下载某些图像
【发布时间】:2019-02-03 13:06:21
【问题描述】:

我正在尝试从特定网站下载图片,我似乎无法使用urllib 下载它们,尽管该链接有效且可通过 chrome 浏览器访问。我正试图弄清楚它发生的原因以及如何解决它。

这些是我得到的错误:

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")

【问题讨论】:

  • 根据错误,网络服务器禁止您下载这些图像。

标签: python urllib


【解决方案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"
)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-02-10
    • 1970-01-01
    • 1970-01-01
    • 2015-02-28
    • 2013-09-21
    • 2018-08-03
    • 1970-01-01
    • 2021-08-29
    相关资源
    最近更新 更多