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下载懒人图库JavaScript特效
May 28 Python
Python 备份程序代码实现
Mar 06 Python
基于Django的python验证码(实例讲解)
Oct 23 Python
python pip安装包出现:Failed building wheel for xxx错误的解决
Dec 25 Python
python列表返回重复数据的下标
Feb 10 Python
基于python的docx模块处理word和WPS的docx格式文件方式
Feb 13 Python
django中嵌套的try-except实例
May 21 Python
大数据分析用java还是Python
Jul 06 Python
通过代码实例解析Pytest运行流程
Aug 20 Python
Python Matplotlib绘图基础知识代码解析
Aug 31 Python
python中操作文件的模块的方法总结
Feb 04 Python
我对PyTorch dataloader里的shuffle=True的理解
May 20 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/06/07 PHP
Laravel框架表单验证操作实例分析
2019/09/30 PHP
JavaScript学习笔记(二) js对象
2011/10/25 Javascript
JavaScript包装对象使用介绍
2013/08/29 Javascript
jquery插件之定时查询待处理任务数量
2014/05/01 Javascript
PHPExcel中的一些常用方法汇总
2015/01/23 Javascript
jQuery修改class属性和CSS样式整理
2015/01/30 Javascript
简介JavaScript中的getUTCFullYear()方法的使用
2015/06/10 Javascript
JS简单实现多级Select联动菜单效果代码
2015/09/06 Javascript
JavaScript编写一个简易购物车功能
2016/09/17 Javascript
jQuery Mobile和HTML5开发App推广注册页
2016/11/07 Javascript
用nodejs搭建websocket服务器
2017/01/23 NodeJs
Vue2递归组件实现树形菜单
2017/04/10 Javascript
HTML5+Canvas调用手机拍照功能实现图片上传(下)
2017/04/21 Javascript
Vue 使用 Mint UI 实现左滑删除效果CellSwipe
2018/04/27 Javascript
实例解析Vue.js下载方式及基本概念
2018/05/11 Javascript
浅谈React之状态(State)
2018/09/19 Javascript
微信小程序dom操作的替代思路实例分析
2018/12/06 Javascript
vue中格式化时间过滤器代码实例
2019/04/17 Javascript
用js简单提供增删改查接口
2019/05/12 Javascript
解决父组件将子组件作为弹窗调用只执行一次created的问题
2020/07/24 Javascript
python制作填词游戏步骤详解
2019/05/05 Python
pyinstaller打包多个py文件和去除cmd黑框的方法
2019/06/21 Python
Python异常模块traceback用法实例分析
2019/10/22 Python
Python线程条件变量Condition原理解析
2020/01/20 Python
Python通过两个dataframe用for循环求笛卡尔积
2020/04/29 Python
获取python运行输出的数据并解析存为dataFrame实例
2020/07/07 Python
基于python实现复制文件并重命名
2020/09/16 Python
python实现定时发送邮件
2020/12/23 Python
Mio Skincare法国官网:身体紧致及孕期身体护理
2018/04/04 全球购物
俄罗斯电动工具和设备购物网站:Vseinstrumenti.ru
2020/11/12 全球购物
运行时异常与一般异常有何异同?
2014/01/05 面试题
创业计划书中包含的9个方面
2013/12/26 职场文书
养殖行业的创业计划书
2014/01/05 职场文书
五年级学生评语大全
2014/12/26 职场文书
德生TECSUN S-2000使用手册文字版
2022/05/10 无线电