Python爬虫包BeautifulSoup异常处理(二)
面对网络不稳定,页面更新等问题,很可能出现程序异常的问题,所以我们要对程序进行一些异常处理。大家可能觉得处理异常是一个比较麻烦的活,但在面对复杂网页和任务的时候,无疑成为一个很好的代码习惯。
网页‘404'、‘500'等问题
try: html=urlopen('http://www.pmcaff.com/2221') exceptHTTPErrorase: print(e)
返回的是空网页
ifhtmlisNone: print('没有找到网页')
目标标签在网页中缺失
try: #不存在的标签 content=bsObj.nonExistingTag.anotherTag exceptAttributeErrorase: print('没有找到你想要的标签') else: ifcontent==None: print('没有找到你想要的标签') else: print(content)
实例
ifsys.version_info[0]==2: fromurllib2importurlopen#Python2 fromurllib2importHTTPError else: fromurllib.requestimporturlopen#Python3 fromurllib.errorimportHTTPError frombs4importBeautifulSoup importsys defgetTitle(url): try: html=urlopen(url) exceptHTTPErrorase: print(e) returnNone try: bsObj=BeautifulSoup(html.read()) title=bsObj.body.h1 exceptAttributeErrorase: returnNone returntitle title=getTitle("http://www.pythonscraping.com/exercises/exercise1.html") iftitle==None: print("Titlecouldnotbefound") else: print(title)
以上全部为本篇文章的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。