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使用urllib模块的urlopen超时问题解决方法
Nov 08 Python
整理Python 常用string函数(收藏)
May 30 Python
Python实现的微信公众号群发图片与文本消息功能实例详解
Jun 30 Python
python版本五子棋的实现代码
Dec 11 Python
Python之循环结构
Jan 15 Python
Python音频操作工具PyAudio上手教程详解
Jun 26 Python
Python 过滤错误log并导出的实例
Dec 26 Python
如何使用repr调试python程序
Feb 28 Python
使用AJAX和Django获取数据的方法实例
Oct 25 Python
python绘制高斯曲线
Feb 19 Python
python爬虫scrapy框架之增量式爬虫的示例代码
Feb 26 Python
python爬虫之利用selenium模块自动登录CSDN
Apr 22 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面向对象学习笔记之二 生成对象的设计模式
2012/10/06 PHP
PHP中使用循环实现的金字塔图形
2014/11/08 PHP
参考:关于Javascript中实现暂停的几篇文章
2007/03/04 Javascript
超级兔子让浮动层消失的前因后果
2007/03/09 Javascript
Javascript 中文字符串处理额外注意事项
2009/11/15 Javascript
Javascript异步表单提交,图片上传,兼容异步模拟ajax技术
2010/05/10 Javascript
用unescape反编码得出汉字示例
2014/04/24 Javascript
JavaScript截断字符串的方法
2015/07/15 Javascript
javascript设计模式之对象工厂函数与构造函数详解
2015/07/30 Javascript
JavaScript数组合并的多种方法
2016/05/22 Javascript
多种jQuery绑定事件的实现方式
2016/06/13 Javascript
使用重写url机制实现验证码换一张功能
2017/08/01 Javascript
Angular4表单验证代码详解
2017/09/03 Javascript
ReactNative中使用Redux架构总结
2017/12/15 Javascript
使用use注册Vue全局组件和全局指令的方法
2018/03/08 Javascript
JS简单数组排序操作示例【sort方法】
2019/05/17 Javascript
js实现淘宝浏览商品放大镜功能
2020/10/28 Javascript
[40:05]DOTA2上海特级锦标赛A组小组赛#1 EHOME VS MVP.Phx第一局
2016/02/25 DOTA
Python pass详细介绍及实例代码
2016/11/24 Python
Python3中的列表,元组,字典,字符串相关知识小结
2017/11/10 Python
浅谈用Python实现一个大数据搜索引擎
2017/11/28 Python
Redis使用watch完成秒杀抢购功能的代码
2018/05/07 Python
Python 忽略warning的输出方法
2018/10/18 Python
python+mysql实现学生信息查询系统
2019/02/21 Python
详解python3安装pillow后报错没有pillow模块以及没有PIL模块问题解决
2019/04/17 Python
梅尔频率倒谱系数(mfcc)及Python实现
2019/06/18 Python
python实现爱奇艺登陆密码RSA加密的方法示例详解
2020/05/27 Python
Python调用OpenCV实现图像平滑代码实例
2020/06/19 Python
html5 Canvas画图教程(4)—未闭合的路径及渐变色的填充方法
2013/01/09 HTML / CSS
大学班长的职责
2014/01/27 职场文书
2014年党员发展工作总结
2014/12/02 职场文书
拾金不昧感谢信范文
2015/01/21 职场文书
2015年副班长工作总结
2015/05/15 职场文书
立秋之描写立秋的作文(五年级)
2019/08/08 职场文书
Nginx服务器添加Systemd自定义服务过程解析
2021/03/31 Servers
PyQt5实现多张图片显示并滚动
2021/06/11 Python