Python爬虫包BeautifulSoup异常处理(二)


Posted in Python onJune 17, 2018

面对网络不稳定,页面更新等问题,很可能出现程序异常的问题,所以我们要对程序进行一些异常处理。大家可能觉得处理异常是一个比较麻烦的活,但在面对复杂网页和任务的时候,无疑成为一个很好的代码习惯。

网页‘404'、‘500'等问题

try:
    html = urlopen('http://www.pmcaff.com/2221')
  except HTTPError as e:
    print(e)

返回的是空网页

if html is None:
    print('没有找到网页')

目标标签在网页中缺失

try:
    #不存在的标签
    content = bsObj.nonExistingTag.anotherTag 
  except AttributeError as e:
    print('没有找到你想要的标签')
  else:
    if content == None:
      print('没有找到你想要的标签')
    else:
      print(content)

实例

if sys.version_info[0] == 2:
  from urllib2 import urlopen # Python 2
  from urllib2 import HTTPError
else:
  from urllib.request import urlopen # Python3
  from urllib.error import HTTPError
from bs4 import BeautifulSoup
import sys


def getTitle(url):
  try:
    html = urlopen(url)
  except HTTPError as e:
    print(e)
    return None
  try:
    bsObj = BeautifulSoup(html.read())
    title = bsObj.body.h1
  except AttributeError as e:
    return None
  return title

title = getTitle("http://www.pythonscraping.com/exercises/exercise1.html")
if title == None:
  print("Title could not be found")
else:
  print(title)

以上全部为本篇文章的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
用Python进行基础的函数式编程的教程
Mar 31 Python
利用python批量检查网站的可用性
Sep 09 Python
Python文本相似性计算之编辑距离详解
Nov 28 Python
深入理解Python单元测试unittest的使用示例
Nov 18 Python
python+matplotlib实现动态绘制图片实例代码(交互式绘图)
Jan 20 Python
python利用socketserver实现并发套接字功能
Jan 26 Python
Python3实现的Mysql数据库操作封装类
Jun 06 Python
OpenCV搞定腾讯滑块验证码的实现代码
May 18 Python
基于Python安装pyecharts所遇的问题及解决方法
Aug 12 Python
Python 图像对比度增强的几种方法(小结)
Sep 25 Python
基于Python实现拆分和合并GIF动态图
Oct 22 Python
Python内置方法实现字符串的秘钥加解密(推荐)
Dec 09 Python
Python爬虫包BeautifulSoup简介与安装(一)
Jun 17 #Python
python主线程捕获子线程的方法
Jun 17 #Python
Python实现获取邮箱内容并解析的方法示例
Jun 16 #Python
Python实现自定义函数的5种常见形式分析
Jun 16 #Python
Python基于jieba库进行简单分词及词云功能实现方法
Jun 16 #Python
Python实现简单的文本相似度分析操作详解
Jun 16 #Python
Django跨域请求问题的解决方法示例
Jun 16 #Python
You might like
php Smarty 字符比较代码
2011/02/27 PHP
部署PHP时的4个配置修改说明
2015/10/19 PHP
php组合排序简单实现方法
2016/10/15 PHP
ASP.NET jQuery 实例13 原创jQuery文本框字符限制插件-TextArea Counter
2012/02/03 Javascript
javascript 系统文件夹文件操作及参数介绍
2013/01/08 Javascript
jQuery创建平滑的页面滚动(顶部或底部)
2013/02/26 Javascript
Javascript浮点数乘积运算出现多位小数的解决方法
2014/02/17 Javascript
js实现无限级树形导航列表效果代码
2015/09/23 Javascript
关于安卓手机微信浏览器中使用XMLHttpRequest 2上传图片显示字节数为0的解决办法
2016/05/17 Javascript
JavaScript跨域调用基于JSON的RESTful API
2016/07/09 Javascript
javascript实现的上下无缝滚动效果
2016/09/19 Javascript
JS正则表达式修饰符中multiline(/m)用法分析
2016/12/27 Javascript
Vue.js用法详解
2017/11/13 Javascript
vue2.0之多页面的开发的示例
2018/01/30 Javascript
在 vue-cli v3.0 中使用 SCSS/SASS的方法
2018/06/14 Javascript
Vue.js 实现数据展示全部和收起功能
2018/09/05 Javascript
Js on及addEventListener原理用法区别解析
2020/07/11 Javascript
js实现车辆管理系统
2020/08/26 Javascript
使用python BeautifulSoup库抓取58手机维修信息
2013/11/21 Python
Python and、or以及and-or语法总结
2015/04/14 Python
Python中的Matplotlib模块入门教程
2015/04/15 Python
Python如何实现守护进程的方法示例
2017/02/08 Python
Python迭代器与生成器用法实例分析
2018/07/09 Python
Anaconda下配置python+opencv+contribx的实例讲解
2018/08/06 Python
Django用户认证系统 组与权限解析
2019/08/02 Python
python实现高斯(Gauss)迭代法的例子
2019/11/20 Python
pycharm 代码自动补全的实现方法(图文)
2020/09/18 Python
谈一谈HTML5本地存储技术
2016/03/02 HTML / CSS
伊利莎白雅顿官网:Elizabeth Arden
2016/10/10 全球购物
美国购买体育赛事门票网站:TicketCity
2019/03/06 全球购物
说一下mysql, oracle等常见数据库的分页实现方案
2012/09/29 面试题
研发工程师岗位职责
2014/04/28 职场文书
2015年学雷锋活动总结
2015/02/06 职场文书
2015年小学中秋节活动总结
2015/03/23 职场文书
重温经典:乔布斯在斯坦福大学的毕业演讲(双语)
2019/08/26 职场文书
剑指Offer之Java算法习题精讲二叉树的构造和遍历
2022/03/21 Java/Android