Goals:
有效处理和避免访问和爬取网页过程中可能出现的错误
Details:
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
expect:
return "产生异常"
if _name_ =="_main_"
url = "http://www.baidu.com"
print(getHTMLText(url))
*说明:这样的网页爬取的通用代码可以提高访问和爬取的效率
More:
requests.ConnectionError | 网络连接错误异常,如DNS查询失败等 |
requests.HTTPError | HTTP错误异常 |
requests.URLRequired | URL缺失异常 |
requests.TooManyRedirects | 超过最大重定向次数,重定向异常 |
requests.ConnectionTimeout | 连接远程服务器超时异常 |
requests.Timeout | 请求URL超时,产生超时错误 |
r.raise_for_status | 判断状态码,如果状态码不是200,就会产生requests.HTTPError异常 |