《用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** | 服务器错误,服务器在处理请求的过程中发生了错误 |

浙公网安备 33010602011771号