2016-01-26 95 views
1

我有一个名为href_w与一群MP3下载链接的列表,但是当我执行这段代码,它给了我一个错误:mp3下载urllib.request.urlopen()超时

# Download file 
print(color.BLUE + "\n[*] Downloading requested mp3(s) ..." + color.END) 
for link in href_w: 
    url = "http://www.mp3c.cc"+link.replace('track','files') 
    print("[*] GET "+url) 
    req = Request(url, headers={'User-Agent': 'Mozilla/5.0'}) 
    response = urlopen(req) 
    html = response.read() 

错误日志看起来是这样的:

[*] Downloading requested mp3(s) ... 
[*] GET http://www.mp3c.cc/files/88144527_288384031/ 
Traceback (most recent call last): 
    File "mp3spyder.py", line 99, in <module> 
    response = urlopen(req) 
    File "/usr/lib/python3.4/urllib/request.py", line 153, in urlopen 
    return opener.open(url, data, timeout) 
    File "/usr/lib/python3.4/urllib/request.py", line 461, in open 
    response = meth(req, response) 
    File "/usr/lib/python3.4/urllib/request.py", line 571, in http_response 
    'http', request, response, code, msg, hdrs) 
    File "/usr/lib/python3.4/urllib/request.py", line 493, in error 
    result = self._call_chain(*args) 
    File "/usr/lib/python3.4/urllib/request.py", line 433, in _call_chain 
    result = func(*args) 
    File "/usr/lib/python3.4/urllib/request.py", line 676, in http_error_302 
    return self.parent.open(new, timeout=req.timeout) 
    File "/usr/lib/python3.4/urllib/request.py", line 461, in open 
    response = meth(req, response) 
    File "/usr/lib/python3.4/urllib/request.py", line 571, in http_response 
    'http', request, response, code, msg, hdrs) 
    File "/usr/lib/python3.4/urllib/request.py", line 499, in error 
    return self._call_chain(*args) 
    File "/usr/lib/python3.4/urllib/request.py", line 433, in _call_chain 
    result = func(*args) 
    File "/usr/lib/python3.4/urllib/request.py", line 579, in http_error_default 
    raise HTTPError(req.full_url, code, msg, hdrs, fp) 
urllib.error.HTTPError: HTTP Error 502: Bad Gateway 

我能做些什么来做到这一点吗?

回答

1

如果您从Web服务器收到502响应,通常意味着它们的后端已关闭。如果您使用curl或wget,您可能会得到相同的响应。

无论如何,您应该总是尝试使用curl或wget来调试此类问题。