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机器学习之决策树算法实例详解
Dec 06 Python
用Python删除本地目录下某一时间点之前创建的所有文件的实例
Dec 14 Python
python3使用scrapy生成csv文件代码示例
Dec 28 Python
详解Python异常处理中的Finally else的功能
Dec 29 Python
python各类经纬度转换的实例代码
Aug 08 Python
django echarts饼图数据动态加载的实例
Aug 12 Python
基于plt.title无法显示中文的快速解决
May 16 Python
在pycharm中debug 实时查看数据操作(交互式)
Jun 09 Python
Django后端按照日期查询的方法教程
Feb 28 Python
使用python如何删除同一文件夹下相似的图片
May 07 Python
高考要来啦!用Python爬取历年高考数据并分析
Jun 03 Python
python实现学员管理系统(面向对象版)
Jun 05 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小经验:解析preg_match与preg_match_all 函数
2013/06/29 PHP
ThinkPHP采用原生query实现关联查询left join实例
2014/12/02 PHP
php中序列化与反序列化详解
2017/02/13 PHP
js版本A*寻路算法
2006/12/22 Javascript
使用JQUERY Tabs插件宿主IFRAMES
2010/01/01 Javascript
javascript写的简单的计算器,内容很多,方法实用,推荐
2011/12/29 Javascript
把input初始值不写value的具体实现方法
2013/07/04 Javascript
jQuery事件用法实例汇总
2014/08/29 Javascript
使用JS画图之点、线、面
2015/01/12 Javascript
javascript实现输出指定行数正方形图案的方法
2015/08/03 Javascript
程序员必知35个jQuery 代码片段
2015/11/05 Javascript
用Vue.js实现监听属性的变化
2016/11/17 Javascript
原生JS实现几个常用DOM操作API实例
2017/01/19 Javascript
Javascript下拉刷新的简单实现
2017/02/14 Javascript
vue.js中指令Directives详解
2017/03/20 Javascript
解决JSON.stringify()自动将中文转译成unicode的问题
2018/01/05 Javascript
SVG实现时钟效果
2018/07/17 Javascript
浅谈ElementUI中switch回调函数change的参数问题
2018/08/24 Javascript
vue-cli webpack配置文件分析
2019/05/20 Javascript
如何基于jQuery实现五角星评分
2020/09/02 jQuery
解决vant title-active-color与title-inactive-color不生效问题
2020/11/03 Javascript
[20:46]Ti4循环赛第三日VG vs DK
2014/07/12 DOTA
python处理中文编码和判断编码示例
2014/02/26 Python
python实现监控linux性能及进程消耗性能的方法
2014/07/25 Python
跟老齐学Python之让人欢喜让人忧的迭代
2014/10/02 Python
python中datetime模块中strftime/strptime函数的使用
2018/07/03 Python
使用Python3+PyQT5+Pyserial 实现简单的串口工具方法
2019/02/13 Python
Python shelve模块实现解析
2019/08/28 Python
python操作docx写入内容,并控制文本的字体颜色
2020/02/13 Python
解决Python spyder显示不全df列和行的问题
2020/04/20 Python
马来西亚网上花店:FlowerAdvisor马来西亚
2020/01/03 全球购物
傲盾软件面试题
2015/08/17 面试题
2014企业领导班子四风对照检查材料思想汇报
2014/09/17 职场文书
酒店财务部岗位职责
2015/04/14 职场文书
导游词之台湾阿里山
2019/10/23 职场文书
在容器中使用nginx搭建上传下载服务器
2022/05/11 Servers