Python爬虫包BeautifulSoup异常处理(二)

 更新时间:2018年06月17日 09:41:06   作者:SuPhoebe  
这篇文章主要为大家详细介绍了Python爬虫包BeautifulSoup的异常处理,具有一定的参考价值,感兴趣的朋友可以参考一下

面对网络不稳定,页面更新等问题,很可能出现程序异常的问题,所以我们要对程序进行一些异常处理。大家可能觉得处理异常是一个比较麻烦的活,但在面对复杂网页和任务的时候,无疑成为一个很好的代码习惯。

网页‘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利用Matplotlib绘图无法显示中文字体的两种解决方案

    Python利用Matplotlib绘图无法显示中文字体的两种解决方案

    matplotlib 是python最著名的绘图库,它提供了一整套和matlab相似的命令API,这篇文章主要给大家介绍了关于Python利用Matplotlib绘图无法显示中文字体的两种解决方案,需要的朋友可以参考下
    2024-03-03
  • 一文带你深度解密Python的字节码

    一文带你深度解密Python的字节码

    当我们想要执行一个 py 文件的时候,只需要在命令行中输入 python xxx.py 即可,但你有没有想过这背后的流程是怎样的呢?本文主要贺和大家来聊聊Python中的字节码,感兴趣的可以了解一下
    2022-12-12
  • 详解Python if-elif-else知识点

    详解Python if-elif-else知识点

    本篇文章给大家总结了Python中if-elif-else的相关知识点以及语法相关内容,有兴趣的朋友参考学习下。
    2018-06-06
  • 使用matplotlib在Python中绘制数据的详细教程

    使用matplotlib在Python中绘制数据的详细教程

    Python 在处理数据方面非常出色,通常,数据集 会包括多个变量和许多实例,这使得很难理解数据的情况,数据可视化是帮助您识别数据模式的一种有用方式,本教程将描述如何使用 matplotlib 在 Python 中绘制数据,需要的朋友可以参考下
    2024-10-10
  • Python+matplotlib+numpy实现在不同平面的二维条形图

    Python+matplotlib+numpy实现在不同平面的二维条形图

    这篇文章主要介绍了Python+matplotlib+numpy实现在不同平面的二维条形图,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01
  • Python利用PyPDF2库处理PDF文件的基本操作

    Python利用PyPDF2库处理PDF文件的基本操作

    PyPDF2是一个Python库,用于处理PDF文件,包括合并、分割、旋转和提取文本等操作,它是一个功能强大且灵活的工具,可用于自动化处理PDF文件,适用于各种应用,从文档管理到数据分析,本文将深入介绍PyPDF2库,掌握如何利用它来处理PDF文件,需要的朋友可以参考下
    2023-11-11
  • Python利用蒙特卡罗模拟期权定价

    Python利用蒙特卡罗模拟期权定价

    期权是一种合约,它赋予买方在未来某个时间点以特定价格买卖资产的权利。本文将利用蒙特卡罗模拟期权定价,感兴趣的小伙伴可以了解一下
    2022-04-04
  • python文件拆分与重组实例

    python文件拆分与重组实例

    今天小编就为大家分享一篇python文件拆分与重组实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • Python必备技巧之字典(Dictionary)详解

    Python必备技巧之字典(Dictionary)详解

    Python中的字典由于是对象的集合属于复合数据类型,类似于列表。本文将通过示例详细讲解Python中字典的使用方法,感兴趣的可以了解一下
    2022-03-03
  • Python数据可视化实现正态分布(高斯分布)

    Python数据可视化实现正态分布(高斯分布)

    这篇文章主要介绍了Python数据可视化实现正态分布(高斯分布),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08

最新评论