我有这行代码:urllib.request.urlretrieve('http://lolupdater.com/downloads/LPB.exe', 'LPBtest.exe')
,但是当我运行它时,它会抛出错误urllib.error.HTTPError: HTTP Error 403: Forbidden
。
答案 0 :(得分:2)
这看起来是一个实际的HTTP 403: Forbidden
错误。 Python urllib
在遇到HTTP状态代码时会抛出异常(记录为here)。 403
通常意味着:"服务器理解请求,但拒绝履行请求。"您需要添加HTTP标头以标识自己并避免403
错误,Python urllib headers上的文档。以下是使用urlopen
:
import urllib.request
req = urllib.request.Request('http://lolupdater.com/downloads/LPB.exe', headers={'User-Agent': 'Mozilla/5.0'})
response = urllib.request.urlopen(req)
使用Python 3 urllib.urlretrieve()
是considered legacy。我建议Python Requests为此,这是一个有效的例子:
import requests
url = 'http://lolupdater.com/downloads/LPB.exe'
r = requests.get(url)
with open('LPBtest.exe', 'wb') as outfile:
outfile.write(r.content)