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中的__init__()方法
May 02 Python
python 如何快速找出两个电子表中数据的差异
May 26 Python
python基础练习之几个简单的游戏
Nov 10 Python
Python实现简单的用户交互方法详解
Sep 25 Python
django模板加载静态文件的方法步骤
Mar 01 Python
Python生成一个迭代器的实操方法
Jun 18 Python
pandas.cut具体使用总结
Jun 24 Python
Python 3 判断2个字典相同
Aug 06 Python
Python垃圾回收机制三种实现方法
Apr 27 Python
基于Python的图像阈值化分割(迭代法)
Nov 20 Python
matplotlib bar()实现百分比堆积柱状图
Feb 24 Python
如何使用flask将模型部署为服务
May 13 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执行sql语句的写法
2009/03/10 PHP
QueryPath PHP 中的jQuery
2010/04/11 PHP
php防注入及开发安全详细解析
2013/08/09 PHP
php简单计算页面加载时间的方法
2015/06/19 PHP
浅析JavaScript中的类型和对象
2013/11/29 Javascript
JS+CSS实现Div弹出窗口同时背景变暗的方法
2015/03/04 Javascript
jQuery经过一段时间自动隐藏指定元素的方法
2015/03/17 Javascript
this,this,再次讨论javascript中的this,超全面(经典)
2016/01/05 Javascript
浅谈js里面的InttoStr和StrtoInt
2016/06/14 Javascript
xmlplus组件设计系列之树(Tree)(9)
2017/05/02 Javascript
详解React中的组件通信问题
2017/07/31 Javascript
基于vue.js的分页插件详解
2017/11/27 Javascript
详解vue组件基础
2018/05/04 Javascript
vue 自定指令生成uuid滚动监听达到tab表格吸顶效果的代码
2020/09/16 Javascript
[05:08]顺网杯ISS-DOTA2赛歌 少女偶像Lunar青春演绎
2013/12/05 DOTA
[02:46]2014DOTA2国际邀请赛 选手为你解读比赛MVP充满梦想
2014/07/09 DOTA
python字典多条件排序方法实例
2014/06/30 Python
在Python的Django框架中获取单个对象数据的简单方法
2015/07/17 Python
解决springboot yml配置 logging.level 报错问题
2020/02/21 Python
Python任务自动化工具tox使用教程
2020/03/17 Python
Django中的AutoField字段使用
2020/05/18 Python
5行Python代码实现图像分割的步骤详解
2020/05/25 Python
Django CBV模型源码运行流程详解
2020/08/17 Python
python“静态”变量、实例变量与本地变量的声明示例
2020/11/13 Python
Canvas中设置width与height的问题浅析
2018/11/01 HTML / CSS
婴儿鞋,独特的婴儿服装和配件:Zutano
2018/11/03 全球购物
Groupon西班牙官方网站:在线优惠券和交易,节省高达70%
2021/03/13 全球购物
文秘应聘自荐书范文
2014/02/18 职场文书
信访工作经验交流材料
2014/05/23 职场文书
安全横幅标语
2014/06/09 职场文书
护林防火标语
2014/06/27 职场文书
践行党的群众路线心得体会
2014/11/05 职场文书
2017公司年会主持人开幕词
2016/03/04 职场文书
Python的flask接收前台的ajax的post数据和get数据的方法
2021/04/12 Python
MYSQL如何查看操作日志详解
2022/05/30 MySQL
MySQL详细讲解变量variables的用法
2022/06/21 MySQL