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出现_warn_unsafe_extraction问题的方法
Mar 24 Python
使用Python操作excel文件的实例代码
Oct 15 Python
Python数据报表之Excel操作模块用法分析
Mar 11 Python
python实现文件的备份流程详解
Jun 18 Python
Python之time模块的时间戳,时间字符串格式化与转换方法(13位时间戳)
Aug 12 Python
python3应用windows api对后台程序窗口及桌面截图并保存的方法
Aug 27 Python
numpy.ndarray 实现对特定行或列取值
Dec 05 Python
Python3标准库之functools管理函数的工具详解
Feb 27 Python
python可以用哪些数据库
Jun 22 Python
Python threading模块condition原理及运行流程详解
Oct 05 Python
python利用proxybroker构建爬虫免费IP代理池的实现
Feb 21 Python
pip install命令安装扩展库整理
Mar 02 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
全国FM电台频率大全 - 23 四川省
2020/03/11 无线电
php Xdebug的安装与使用详解
2013/06/20 PHP
php 数组元素快速去重
2017/05/05 PHP
原生JS实现Ajax通过POST方式与PHP进行交互的方法示例
2018/05/12 PHP
jquery模拟按下回车实现代码
2011/09/20 Javascript
js的hasownproperty使用示例
2014/03/02 Javascript
JavaScript字符串对象substr方法入门实例(用于截取字符串)
2014/10/16 Javascript
jQuery中innerHeight()方法用法实例
2015/01/19 Javascript
JavaScript框架是什么?怎样才能叫做框架?
2015/07/01 Javascript
基于jquery css3实现点击动画弹出表单源码特效
2015/08/31 Javascript
Angularjs的键盘事件的绑定
2017/07/27 Javascript
Angular中管道操作符(|)的使用方法
2017/12/15 Javascript
仿淘宝JSsearch搜索下拉深度用法
2018/01/15 Javascript
JS实现获取word文档内容并输出显示到html页面示例
2018/06/23 Javascript
Vue核心概念Getter的使用方法
2019/01/18 Javascript
微信小程序 checkbox使用实例解析
2019/09/09 Javascript
微信小程序 动态修改页面数据及参数传递过程详解
2019/09/27 Javascript
Vue前端项目部署IIS的实现
2020/01/06 Javascript
Python群发邮件实例代码
2014/01/03 Python
python使用socket远程连接错误处理方法
2015/04/29 Python
python实现小球弹跳效果
2019/05/10 Python
Flask框架学习笔记之模板操作实例详解
2019/08/15 Python
python给图像加上mask,并提取mask区域实例
2020/01/19 Python
PyQt5中向单元格添加控件的方法示例
2020/03/24 Python
用html5的canvas和JavaScript创建一个绘图程序的简单实例
2016/07/06 HTML / CSS
美国专业级皮肤病和spa品质护肤品的高级零售网站:SkinCareRx
2017/02/06 全球购物
NARS化妆品官方商店:美国彩妆品牌
2017/08/26 全球购物
毕业生自我鉴定
2013/11/05 职场文书
三年级语文教学反思
2014/02/01 职场文书
校园运动会广播稿
2014/10/06 职场文书
2014年小学辅导员工作总结
2014/12/23 职场文书
支行行长岗位职责
2015/02/15 职场文书
2015年林业工作总结
2015/05/14 职场文书
优秀教师工作总结2015
2015/07/22 职场文书
用position:sticky完美解决小程序吸顶问题的实现方法
2021/04/24 HTML / CSS
Win11怎么跳过联网验机 ?Win11跳过联网验机激活教程
2022/04/05 数码科技