当我尝试从链接下载文件时出现此错误无论我尝试查找和执行此操作,都会收到此错误 我正在使用
urllib.error.HTTPError: HTTP Error 403: Forbidden
我的代码是
elif message.content.startswith('``'):
countn = (count+1)
print(countn)
print('ADD')
meme = (message.content)
memen = meme.replace("``", "")
print(memen)
print('Converted')
urllib.request.urlretrieve(memen, meme)
await client.send_message (message.channel, "Added!")
答案 0 :(得分:0)
403:FORBIDDEN表示服务器拒绝您访问资源,原因是您未能提供足够的身份验证,或者因为它阻止了默认的python用户代理(Python.urllib/3.X
)。
urlretrieve实际上是一个遗留接口,因为它是从Python 2移植的。您应该考虑使用urlopen
代替。
无论如何,对此的一个解决方案是在您的请求中添加(欺骗性)用户代理,而无法使用urlretrieve ...
headers = {"User-Agent": "Mozilla/5.0"}
request = urllib.request.Request(url, headers=headers)
resp = urllib.request.urlopen(request)
with open(filename, "w") as file:
file.write(resp.read())
这不会解决需要登录的网站的问题,但它会解决很多不合适的网站。