【问题标题】:urlretrieve returning typeerrorurlretrieve 返回类型错误
【发布时间】:2017-03-25 22:14:34
【问题描述】:

我不知道为什么我的代码返回这个错误,我似乎无法调试它。

TypeError: expected string or bytes-like object

这是我用来下载的内容

self.headers = { 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' }
self.request = urllib.request.Request(url, headers=self.headers)
urllib.request.urlretrieve(self.request, reporthook=report)

【问题讨论】:

  • 我不认为urlretrieve 允许发送标头。没有它们还能用吗?
  • 不,它会向我的网络服务器返回一个403 Forbidden。这是否意味着我必须更改我的网站?
  • 让我问你这个问题:你能不使用reporthook吗?因为那时你可以使用urlopen,它允许标题。
  • 我需要reporthookPyQt5 将下载进度发送到进度条,所以我有点需要它。
  • 我会看看我的nginx 配置。如果您发布答案,我会接受。为帮助喝彩。 :-)

标签: python-3.x urllib


【解决方案1】:

urlretrieve 似乎不允许发送标头。

您遇到的错误是因为 urlretrieve 期望那里有一个 URL,而不是 Request 对象。

由于它是您自己的网络服务器,您将请求发送到也许您可以修改其配置以接受那些不带标头的 urlretrieve 请求。

祝你好运。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-15
    • 2017-12-15
    • 1970-01-01
    • 1970-01-01
    • 2022-12-08
    • 1970-01-01
    • 1970-01-01
    • 2018-08-04
    相关资源
    最近更新 更多