在Python 3.2.1上使用urllib.request.urlopen()时出错

时间:2017-08-09 13:45:41

标签: python python-3.x urllib2 urllib

我正在使用urllib.request使用Python 3.2.1打开页面源,但我收到错误urllib.error.HTTPError: HTTP Error 503: Service Unavailable。请在下面找到代码和错误。

代码

import re
import urllib.request

html = urllib.request.urlopen("http://www.pythonchallenge.com/pc/def/ocr.html").read().decode()

print (html)

错误

Traceback (most recent call last):
  File "I:/Private/nabm/python/python_challenge/python_challenge_2.py", line 4, in <module>
    html = urllib.request.urlopen("http://www.pythonchallenge.com/pc/def/ocr.html").read().decode()
  File "C:\appl\Python\3.2.1\lib\urllib\request.py", line 138, in urlopen
    return opener.open(url, data, timeout)
  File "C:\appl\Python\3.2.1\lib\urllib\request.py", line 375, in open
    response = meth(req, response)
  File "C:\appl\Python\3.2.1\lib\urllib\request.py", line 487, in http_response
    'http', request, response, code, msg, hdrs)
  File "C:\appl\Python\3.2.1\lib\urllib\request.py", line 413, in error
    return self._call_chain(*args)
  File "C:\appl\Python\3.2.1\lib\urllib\request.py", line 347, in _call_chain
    result = func(*args)
  File "C:\appl\Python\3.2.1\lib\urllib\request.py", line 495, in http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 503: Service Unavailable

Process finished with exit code 1

有人能看到可能导致此错误的原因吗?

2 个答案:

答案 0 :(得分:0)

HTTP错误503表示服务器此时无法响应,无论是由于过载还是因为它拒绝了您的连接。换句话说,您无法在代码中更改任何内容来修复它。

答案 1 :(得分:0)

我知道距离约会已经有一段时间了。但是,我将发布如何处理“ HTTP错误503”的情况,以防它可能对其他人有所帮助。 首先,我确实将request.urlretrieve(...)放入try块中以捕获错误。 就我而言,我尝试访问的服务器确实需要时间来处理请求。 (我访问的服务器不是Amazon.com或那种阻止程序访问其内容的服务器。) 使用try块,在发生异常的情况下,我使用time.sleep(20)使程序等待20秒。这样可以完成我的程序。