Python 爬虫 web 数据分析 机器学习 人工智能python开发python爬虫

爬虫原理与数据抓取之七: URLError 和 HTTPErro

2018-04-18  本文已影响25人  奋斗的老王

urllib2 的异常错误处理

URLError

# urllib2_urlerror.py

import urllib2

requset = urllib2.Request('http://www.ajkfhafwjqh.com')

try:
    urllib2.urlopen(request, timeout=5)
except urllib2.URLError, err:
    print err
<urlopen error [Errno 8] nodename nor servname provided, or not known>
urlopen error,错误代码8,错误原因是没有找到指定的服务器。

HTTPError

注意,urllib2可以为我们处理重定向的页面(也就是3开头的响应码),100-299范围的号码表示成功,所以我们只能看到400-599的错误号码。
# urllib2_httperror.py
import urllib2
requset = urllib2.Request('http://blog.baidu.com/itcast')
try:
    urllib2.urlopen(requset)
except urllib2.HTTPError, err:
    print err.code
    print err

HTTP Error,错误代号是404,错误原因是Not Found,说明服务器无法找到被请求的页面。
通常产生这种错误的,要么url不对,要么ip被封。

改进版

# urllib2_botherror.py

import urllib2

requset = urllib2.Request('http://blog.baidu.com/itcast')

try:
    urllib2.urlopen(requset)

except urllib2.HTTPError, err:
    print err.code

except urllib2.URLError, err:
    print err

else:
    print "Good Job"

HTTP响应状态码参考:

1xx:信息

2xx:成功

3xx:重定向

4xx:客户端错误

5xx:服务器错误

上一篇下一篇

猜你喜欢

热点阅读