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监控主机是否存活并以邮件报警
Sep 22 Python
python 默认参数问题的陷阱
Feb 29 Python
简单讲解Python编程中namedtuple类的用法
Jun 21 Python
Python 递归函数详解及实例
Dec 27 Python
Python元组拆包和具名元组解析实例详解
Mar 26 Python
python实现内存监控系统
Mar 07 Python
Python使用folium excel绘制point
Jan 03 Python
python遍历文件目录、批量处理同类文件
Aug 31 Python
使用matplotlib绘制图例标签中带有公式的图
Dec 13 Python
Python中and和or如何使用
May 28 Python
python 最简单的实现适配器设计模式的示例
Jun 30 Python
pycharm不以pytest方式运行,想要切换回普通模式运行的操作
Sep 01 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入门速成(2)
2006/10/09 PHP
php for 循环语句使用方法详细说明
2010/05/09 PHP
6个超实用的PHP代码片段
2015/08/10 PHP
PHP命名空间和自动加载类
2016/04/03 PHP
php中输出json对象的值(实现方法)
2018/03/07 PHP
PHP使用星号替代用户名手机和邮箱的实现代码
2018/02/07 PHP
调试php程序的简单步骤
2019/10/04 PHP
In Javascript Class, how to call the prototype method.(three method)
2007/01/09 Javascript
javascript在事件监听方面的兼容性小结
2010/04/07 Javascript
利用JQuery的load函数动态加载其它页面的内容的实现代码
2010/12/14 Javascript
js 获取计算后的样式写法及注意事项
2013/02/25 Javascript
js动态生成指定行数的表格
2013/07/11 Javascript
一个JavaScript操作元素定位元素的实例
2014/10/29 Javascript
一款基jquery超炫的动画导航菜单可响应单击事件
2014/11/02 Javascript
jquery中radio checked问题
2015/03/16 Javascript
jQuery获得document和window对象宽度和高度的方法
2015/03/25 Javascript
JavaScript使表单中的内容显示在屏幕上的方法
2015/06/29 Javascript
Node.js 条形码识别程序构建思路详解
2016/02/14 Javascript
AngularJS中的Promise详细介绍及实例代码
2016/12/13 Javascript
ES6中Array.includes()函数的用法
2017/09/20 Javascript
React-Native左右联动List的示例代码
2017/09/21 Javascript
js实现点击图片在屏幕中间弹出放大效果
2019/09/11 Javascript
django简单的前后端分离的数据传输实例 axios
2020/05/18 Javascript
python打开网页和暂停实例
2014/09/30 Python
利用Python如何生成hash值示例详解
2017/12/20 Python
浅谈Django学习migrate和makemigrations的差别
2018/01/18 Python
Python随机函数random()使用方法小结
2018/04/29 Python
Selenium 滚动页面至元素可见的方法
2020/03/18 Python
Python自动化操作实现图例绘制
2020/07/09 Python
CSS3地图动态实例代码(圆圈向外扩散)
2018/06/15 HTML / CSS
Fresh馥蕾诗英国官网:法国LVMH集团旗下高端天然护肤品牌
2018/11/01 全球购物
节约每一滴水演讲稿
2014/09/09 职场文书
2014年财务科工作总结
2014/11/11 职场文书
幼儿园大班教师个人工作总结
2015/02/05 职场文书
逃课检讨书范文
2015/05/06 职场文书
2015年社区消防安全工作总结
2015/10/14 职场文书