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 拷贝对象(深拷贝deepcopy与浅拷贝copy)
Sep 06 Python
Python入门篇之文件
Oct 20 Python
python使用Queue在多个子进程间交换数据的方法
Apr 18 Python
python中 chr unichr ord函数的实例详解
Aug 06 Python
Python中 传递值 和 传递引用 的区别解析
Feb 22 Python
python调用API实现智能回复机器人
Apr 10 Python
python pandas 组内排序、单组排序、标号的实例
Apr 12 Python
Python中Proxypool库的安装与配置
Oct 19 Python
pytorch实现onehot编码转为普通label标签
Jan 02 Python
Python设计密码强度校验程序
Jul 30 Python
Python调用C/C++的方法解析
Aug 05 Python
Python通用唯一标识符uuid模块使用案例
Sep 10 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 求质素(素数) 的实现代码
2011/04/12 PHP
PHP数据库操作之基于Mysqli的数据库操作类库
2014/04/19 PHP
php数组添加元素方法小结
2014/12/20 PHP
PHP中快速生成随机密码的几种方式
2017/04/17 PHP
layui框架实现文件上传及TP3.2.3(thinkPHP)对上传文件进行后台处理操作示例
2018/05/12 PHP
利用PHP扩展Xhprof分析项目性能实践教程
2018/09/05 PHP
phpStorm2020 注册码
2020/09/17 PHP
在浏览器中获取当前执行的脚本文件名的代码
2011/07/19 Javascript
js的隐含参数(arguments,callee,caller)使用方法
2014/01/28 Javascript
用unescape反编码得出汉字示例
2014/04/24 Javascript
js根据手机客户端浏览器类型,判断跳转官网/手机网站多个实例代码
2016/04/30 Javascript
jQuery实现的简单分页示例
2016/06/01 Javascript
jQuery插件echarts实现的循环生成图效果示例【附demo源码下载】
2017/03/04 Javascript
Vue.js 使用v-cloak后仍显示变量的解决方法
2018/11/19 Javascript
extract-text-webpack-plugin用法详解
2019/02/14 Javascript
JS实现音乐钢琴特效
2020/01/06 Javascript
vue实现打地鼠小游戏
2020/08/21 Javascript
vue axios请求成功却进入catch的原因分析
2020/09/08 Javascript
Python 字符串操作方法大全
2014/03/11 Python
在Python中操作字符串之rstrip()方法的使用
2015/05/19 Python
Python获取linux主机ip的简单实现方法
2016/04/18 Python
Python正则抓取网易新闻的方法示例
2017/04/21 Python
python使用pyqt写带界面工具的示例代码
2017/10/23 Python
pandas string转dataframe的方法
2018/04/11 Python
Python设计模式之建造者模式实例详解
2019/01/17 Python
python读取tif图片时保留其16bit的编码格式实例
2020/01/13 Python
解决margin 外边距合并问题
2019/07/03 HTML / CSS
canvas 下载二维码和图片加水印的方法
2018/03/21 HTML / CSS
英国领先的豪华时尚家居网上商店:Amara
2019/08/12 全球购物
迟到检讨书300字
2014/02/14 职场文书
人事经理岗位职责
2014/04/28 职场文书
中队活动总结
2014/08/27 职场文书
四风问题专项整治工作情况报告
2014/10/28 职场文书
部队2014年终工作总结
2014/11/27 职场文书
2016年小学教师师德承诺书
2016/03/25 职场文书
CSS filter 有什么神奇用途
2021/05/25 HTML / CSS