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 相关文章推荐
在Python3中初学者应会的一些基本的提升效率的小技巧
Mar 31 Python
在Python中操作时间之strptime()方法的使用
Dec 30 Python
用python写的一个wordpress的采集程序
Feb 27 Python
Python常见异常分类与处理方法
Jun 04 Python
Python 中Pickle库的使用详解
Feb 24 Python
windows下python 3.6.4安装配置图文教程
Aug 21 Python
解决sublime+python3无法输出中文的问题
Dec 12 Python
python快速排序的实现及运行时间比较
Nov 22 Python
Python正则表达式急速入门(小结)
Dec 16 Python
python Selenium 库的使用技巧
Oct 16 Python
django使用多个数据库的方法实例
Mar 04 Python
Python捕获、播放和保存摄像头视频并提高视频清晰度和对比度
Apr 14 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
日本十大惊悚动漫
2020/03/04 日漫
TMDPHP 模板引擎使用教程
2012/03/13 PHP
php长字符串定义方法
2012/07/12 PHP
PHP 读取Postgresql中的数组
2013/04/14 PHP
php图片处理函数获取类型及扩展名实例
2014/11/19 PHP
非常实用的PHP常用函数汇总
2014/12/17 PHP
ThinkPHP整合datatables实现服务端分页的示例代码
2018/02/10 PHP
javascript getElementsByClassName 和js取地址栏参数
2010/01/02 Javascript
使用UglifyJS合并/压缩JavaScript的方法
2012/03/07 Javascript
js replace 与replaceall实例用法详解
2013/08/03 Javascript
jQueryMobile之Helloworld与页面切换的方法
2015/02/04 Javascript
JS实现的左侧竖向滑动菜单效果代码
2015/10/19 Javascript
javascript原型继承工作原理和实例详解
2016/04/07 Javascript
分享JS代码实现鼠标放在输入框上输入框和图片同时更换样式
2016/09/01 Javascript
javascript学习之json入门
2016/12/22 Javascript
基于vue.js无缝滚动效果
2018/01/25 Javascript
一次记住JavaScript的6个正则表达式方法
2018/02/22 Javascript
nodejs express配置自签名https服务器的方法
2018/05/22 NodeJs
详解ES6中的Map与Set集合
2019/03/22 Javascript
详解如何理解vue的key属性
2019/04/14 Javascript
vue 组件开发原理与实现方法详解
2019/11/29 Javascript
python简单鼠标自动点击某区域的实例
2019/06/25 Python
如何给Python代码进行加密
2020/01/10 Python
Python爬虫工具requests-html使用解析
2020/04/29 Python
pycharm远程连接vagrant虚拟机中mariadb数据库
2020/06/05 Python
日本高端护肤品牌:Tatcha
2016/08/29 全球购物
Sneaker Studio波兰:购买运动鞋
2018/04/28 全球购物
初中女生自我鉴定
2013/12/19 职场文书
电信营业员自我评价分享
2014/01/17 职场文书
公安学专业求职信
2014/07/27 职场文书
小学老师对学生的评语
2014/12/29 职场文书
评职称个人总结
2015/03/05 职场文书
就业意向书范本
2015/05/11 职场文书
新闻通讯稿模板
2015/07/22 职场文书
2016年端午节红领巾广播稿
2015/12/18 职场文书
python DataFrame中stack()方法、unstack()方法和pivot()方法浅析
2022/04/06 Python