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内置的字符串处理函数详细整理(覆盖日常所用)
Aug 19 Python
Python科学画图代码分享
Nov 29 Python
详解Pytorch 使用Pytorch拟合多项式(多项式回归)
May 24 Python
Python 调用 zabbix api的方法示例
Jan 06 Python
Python实现通过解析域名获取ip地址的方法分析
May 17 Python
linux中如何使用python3获取ip地址
Jul 15 Python
解决django 新增加用户信息出现错误的问题
Jul 28 Python
PyQt5实现暗黑风格的计时器
Jul 29 Python
python实现大学人员管理系统
Oct 25 Python
Python文件操作方法详解
Feb 09 Python
python判断字符串以什么结尾的实例方法
Sep 18 Python
Python扫描端口的实现
Jan 25 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简单判断字符串是否包含另一个字符串的方法
2016/03/25 PHP
PHP中addslashes与mysql_escape_string的区别分析
2016/04/25 PHP
比较完整的微信开发php代码
2016/08/02 PHP
Laravel 手动开关 Eloquent 修改器的操作方法
2019/12/30 PHP
Javascript 类与静态类的实现(续)
2010/04/02 Javascript
同一页面多个商品倒计时JS 基于面向对象的javascript
2012/02/16 Javascript
jquery遍历之parent()和parents()的区别及parentsUntil()方法详解
2013/12/02 Javascript
浅谈Javascript中substr和substring的区别
2015/09/30 Javascript
JavaScript代码里的判断小结
2016/08/22 Javascript
jQuery Mobile和HTML5开发App推广注册页
2016/11/07 Javascript
详解jQuery的Cookie插件
2016/11/23 Javascript
jquery点击展示与隐藏更多内容
2016/12/03 Javascript
jQuery插件echarts实现的去掉X轴、Y轴和网格线效果示例【附demo源码下载】
2017/03/04 Javascript
canvas仿iwatch时钟效果
2017/03/06 Javascript
ES6入门教程之Class和Module详解
2017/05/17 Javascript
详解IWinter 一个路由转控制器的 Nodejs 库
2017/11/15 NodeJs
JavaScript函数式编程(Functional Programming)纯函数用法分析
2019/05/22 Javascript
jQuery - AJAX load() 实例用法详解
2019/08/27 jQuery
Jquery滑动门/tab切换实现方法完整示例
2020/06/05 jQuery
python实现将内容分行输出
2015/11/05 Python
python opencv实现任意角度的透视变换实例代码
2018/01/12 Python
python微信跳一跳系列之色块轮廓定位棋盘
2018/02/26 Python
Pycharm+Python+PyQt5使用详解
2019/09/25 Python
pyMySQL SQL语句传参问题,单个参数或多个参数说明
2020/06/06 Python
HTML5头部标签的一些常用信息小结
2016/10/23 HTML / CSS
皮尔·卡丹巴西官方商店:Pierre Cardin
2017/07/21 全球购物
NARS化妆品官方商店:美国彩妆品牌
2017/08/26 全球购物
乌克兰数字设备、配件和智能技术的连锁商店:KTC
2020/08/18 全球购物
short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
2014/09/26 面试题
YII2 全局异常处理深入讲解
2021/03/24 PHP
新闻编辑求职信
2014/07/13 职场文书
2014年学校工会工作总结
2014/12/06 职场文书
2014年体育教学工作总结
2014/12/09 职场文书
2014年骨干教师工作总结
2014/12/19 职场文书
可怜妈妈观后感
2015/06/09 职场文书
厉害!这是Redis可视化工具最全的横向评测
2021/07/15 Redis