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

作者:SuPhoebe 时间:2021-12-09 21:53:42 

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

网页‘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)

以上全部为本篇文章的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

来源:https://blog.csdn.net/u013007900/article/details/53819711

标签:python,爬虫包,BeautifulSoup
0
投稿

猜你喜欢

  • keras处理欠拟合和过拟合的实例讲解

    2022-06-23 05:14:38
  • goroutine 泄漏和避免泄漏实战示例

    2024-02-18 03:31:15
  • python dataframe NaN处理方式

    2022-12-01 18:49:33
  • SQL中创建存储过程

    2024-01-23 17:42:58
  • MobaXterm详细使用图文教程(MobaXterm连接Linux服务器)

    2023-05-07 05:51:43
  • 10款顶级jQuery插件推荐

    2011-08-14 07:55:39
  • JavaScript画圆

    2010-01-22 15:57:00
  • Python使用configparser读取ini配置文件

    2023-11-02 04:48:22
  • Oracle创建主键自增表(sql语句实现)及触发器应用

    2024-01-17 07:12:37
  • PL/SQL Dev连接Oracle弹出空白提示框的解决方法分享

    2024-01-28 03:19:05
  • 通过Turtle库在Python中绘制一个鼠年福鼠

    2021-03-01 03:48:12
  • 使用Pytorch实现two-head(多输出)模型的操作

    2023-08-20 07:00:05
  • 利用Django框架中select_related和prefetch_related函数对数据库查询优化

    2024-01-20 23:24:19
  • Python OpenCV视频截取并保存实现代码

    2023-01-05 06:04:21
  • 关于Pytorch的MLP模块实现方式

    2021-12-19 03:28:22
  • SecureCRTSecure7.0查看连接密码的步骤

    2021-01-28 07:34:14
  • python使用Plotly绘图工具绘制柱状图

    2021-10-05 00:22:34
  • python中使用np.delete()的实例方法

    2023-02-07 10:19:47
  • MySQL每天自动增加分区的实现

    2024-01-23 16:18:37
  • 13个超级有用的 jQuery 内容滚动插件和教程

    2011-08-10 19:10:08
  • asp之家 网络编程 m.aspxhome.com