第一周-单元1-Requests库入门-3-爬取网页的通用代码框架
3.爬取网页的通用代码框架
爬取网页的通用代码框架:指可以准确、可靠地爬取网页内容的一组代码。
3.1异常处理
使用get()方法时并不一定能够成功获取信息,所以首先明确异常处理非常重要。
理解Requests库的异常
异常 | 说明 |
requests.ConnectionError | 网络连接错误异常,如DNS查询失败、拒绝连接等 |
requests.HTTPError | HTTP错误异常 |
requests.URLRequired | URL缺失异常 |
requests.TooManyRedirects | 超过最大重定向次数,产生重定向异常 |
requests.ConnectTimeout | 连接远程服务器超时异常 |
requests.Timeout | 请求URL超时,产生超时异常 |
其中,Timeout和ConnectTimeout之间的区别:Timeout指从发出URL请求到获得内容的整个过程的超时异常。而ConnectTimeout仅指与远程服务器连接过程产生的超时异常。
判断是否产生异常的方法:r.raise_for_status()
。其返回值如果不是200则产生requests.HTTPError异常。
3.2通用代码框架
import requests
def getHTMLText(url):
try:
r = requests.get(url,timeout=30)
r.raise_for_status() #如果状态不是200,引发HTTPError异常
r.encoding = r.apparent_encoding
return r.text
except:
return "产生异常"
通用代码框架最大的作用是能够使得用户更稳定、更有效地访问或爬取网页。