Loading

《用python写网络爬虫》

  • 爬虫的异常处理

在爬取失败后使用递归调用再次进行爬取

def download3(url, num_retries=2):
    print('Downloading:', url)
    try:
        html = urllib2.urlopen(url).read()
    except urllib2.URLError as e:
        print('Download error:', e.reason)
        html = None
        if num_retries > 0:
            if hasattr(e, 'code') and 500 <= e.code < 600:
                # retry 5XX HTTP errors
                html = download3(url, num_retries-1)
    return html

首先使用try-except进行异常处理

hasattr(object, name)
# 用于查看对象是否有对应的属性,返回布尔值

 

 

 

  • 常见的返回代码

200 - 请求成功

301 - 资源(网页等)被永久转移到其它URL

404 - 请求的资源(网页等)不存在

500 - 内部服务器错误

分类分类描述
1** 信息,服务器收到请求,需要请求者继续执行操作
2** 成功,操作被成功接收并处理
3** 重定向,需要进一步的操作以完成请求
4** 客户端错误,请求包含语法错误或无法完成请求
5** 服务器错误,服务器在处理请求的过程中发生了错误
posted @ 2020-12-03 00:26  lixin2020  阅读(415)  评论(0)    收藏  举报