Câu trả lời:
Phương thức getcode () (Đã thêm trong python2.6) trả về mã trạng thái HTTP đã được gửi cùng với phản hồi hoặc Không có nếu URL không phải là URL HTTP.
>>> a=urllib.urlopen('http://www.google.com/asdfsf')
>>> a.getcode()
404
>>> a=urllib.urlopen('http://www.google.com/')
>>> a.getcode()
200
urllib.request.urlopen
trả về a urllib.error.HTTPError
.
Bạn cũng có thể sử dụng urllib2 :
import urllib2
req = urllib2.Request('http://www.python.org/fish.html')
try:
resp = urllib2.urlopen(req)
except urllib2.HTTPError as e:
if e.code == 404:
# do something...
else:
# ...
except urllib2.URLError as e:
# Not an HTTP-specific error (e.g. connection refused)
# ...
else:
# 200
body = resp.read()
Lưu ý rằng đó HTTPError
là một lớp con URLError
lưu mã trạng thái HTTP.
else
có phải là một sai lầm?
Đối với Python 3:
import urllib.request, urllib.error
url = 'http://www.google.com/asdfsf'
try:
conn = urllib.request.urlopen(url)
except urllib.error.HTTPError as e:
# Return code error (e.g. 404, 501, ...)
# ...
print('HTTPError: {}'.format(e.code))
except urllib.error.URLError as e:
# Not an HTTP-specific error (e.g. connection refused)
# ...
print('URLError: {}'.format(e.reason))
else:
# 200
# ...
print('good')
http.client.HTTPException
thì sao?
import urllib2
try:
fileHandle = urllib2.urlopen('http://www.python.org/fish.html')
data = fileHandle.read()
fileHandle.close()
except urllib2.URLError, e:
print 'you got an error with the code', e
from urllib.request import urlopen
.