【网络安全带你练爬虫-100练】第4练:添加异常处理代码

news2024/11/28 3:32:21

目录

一、异常处理代码:

二、执行结果:

三、完整代码:


(当代码越来越长的时候,异常处理代码有时候能起到很好的作用)

一、异常处理代码:

(1)try-except搭配:try关键字后面的代码是要监视异常的代码块,except关键字后面的代码是用于处理异常的代码块。

try:
    # 可能引发异常的代码块
except ExceptionType:
    # 处理特定类型的异常的代码块

(2)异常类型:在except语句中,可以指定要处理的特定异常类型

try:
    # 可能引发异常的代码块
except ZeroDivisionError:
    # 处理 ZeroDivisionError 异常的代码块

(3)多个except块:可以使用多个except块来处理不同类型的异常。按照从上到下的顺序,第一个匹配的except块将处理异常,而剩余的except块将被忽略

try:
    # 可能引发异常的代码块
except ExceptionType1:
    # 处理 ExceptionType1 异常的代码块
except ExceptionType2:
    # 处理 ExceptionType2 异常的代码块

(4)else子句:可以在try-except块中添加一个可选的else子句。else子句中的代码将在try块中没有发生任何异常时执行。

try:
    # 可能引发异常的代码块
except ExceptionType:
    # 处理异常的代码块
else:
    # 如果没有发生异常,则执行的代码块


(5)finally子句:可以在try-except块中添加一个可选的finally子句。无论是否发生异常,finally子句中的代码都将执行。通常在finally块中放置清理代码,例如关闭打开的文件或释放资源。

try:
    # 可能引发异常的代码块
except ExceptionType:
    # 处理异常的代码块
finally:
    # 无论是否发生异常,都会执行的代码块



二、执行结果:

 

 



三、完整代码:

import requests
from bs4 import BeautifulSoup

def get_TYC_info():
    try:
        html = get_page(TYC_url)
        soup = BeautifulSoup(html, 'lxml')
        GS_list = soup.find('div', attrs={'class': 'index_list-wrap___axcs'})
        GS_items = GS_list.find_all('div', attrs={'class': 'index_search-box__7YVh6'})
        for item in GS_items:
            title = item.find('div', attrs={'class': 'index_name__qEdWi'}).a.span.text
            link = item.a['href']
            company_type = item.find('div', attrs={'class': 'index_tag-list__wePh_'}).find_all('div', attrs={'class': 'index_tag-common__edIee'})
            tpye_texts = [element.text for element in company_type]
            money = item.find('div', attrs={'class': 'index_info-col__UVcZb index_narrow__QeZfV'}).span.text


            print(title.strip(),link,tpye_texts,money)
    except Exception as e:
        print("An error occurred:", str(e))

def get_page(url):
    try:
        headers = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/44.0.2403.89 Chrome/44.0.2403.89 Safari/537.36'}
        response = requests.get(url, headers=headers, timeout=10)
        response.raise_for_status()
        return response.text
    except requests.exceptions.RequestException as e:
        print("An error occurred while making the request:", str(e))
    except Exception as e:
        print("An error occurred:", str(e))
    return ""


if __name__ == '__main__':
        TYC_url = "https://www.tianyancha.com/search?key=&base=hub&city=wuhan&cacheCode=00420100V2020&sessionNo=1688108233.45545222"
        get_TYC_info()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/719943.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Stable Difussion 解决绘图图片灰暗模糊,让图像色彩更丰富

在使用Stable Difussion进行AI绘画的时候,使用VAE能够产生许多有趣的效果。其滤镜功能可根据需要调整图像的色彩饱和度,使图像产生不同的视觉效果。 如下图所示: 但是如果不使用VAE那你的图像可能就会变得灰暗。 文章目录 VAE用途VAE的使…

cspm是什么?对比pmp怎么样?

一、国标项目管理(项目管理专业人员能力评级)证书是什么? 证书样式 《项目管理专业人员能力评价要求》(GB/T 41831-2022)是2022年10月12日开始实施的一项中国国家标准,归口于全国项目管理标准化技术委员会。…

【问题】TypeError: Cannot read properties of undefined (reading ‘getStackAddendum‘)

问题描述 项目运行中,控制台提示类型错误,无法读取未定义的属性getStackAddendum TypeError: Cannot read properties of undefined (reading getStackAddendum) 原因分析: 在上述截图的错误日志中,有执行validateChildKeys和va…

初识C++:从零开始掌握神秘之门的钥匙

🌱博客主页:青竹雾色间. 😘博客制作不易欢迎各位👍点赞⭐收藏➕关注 ✨人生如寄,多忧何为 ✨ 目录 一、什么是C? 二、 C的发展史 三、C的重要性 3.1 语言的使用广泛度 3.2 在工作领域 3.2.1. 操作系…

Java压缩图片以及获取缩略图

Java压缩图片以及获取缩略图 前言使用到的类ToolkitMediaTrackerImageBufferedImageImageWriterImageIOImageWriteParamGraphics2D 工具类ImageUtil测试测试代码测试结果 遇到的问题 前言 这个应该就没啥多说的了,接触过图片操作的基本都知道上述功能为常用功能。 …

Java-数据结构(一)-java1中有哪些数据结构呢?

这里写目录标题 前言一、为什么需要数据结构?1、低效的操作2、占用过多的内存空间3、困难的数据操作 二、枚举(Enumeration)1、定义2、关键字3、适用场景 三、 位集合(BitSet)1、定义2、方法3、适用场景 四、向量&…

Ping命令讲解

ping是什么? ping (Packet Internet Groper),因特网包探索器,用于测试网络连接量的程序。Ping发送一个ICMP;回声请求消息给目的地并报告是否收到所希望的ICMP echo (ICMP回声应答)。它是用来检查网络是否通…

Java链式编程

一、链式编程 1.1.释义 链式编程,也叫级联式编程,调用对象的函数时返回一个this对象指向对象本身,达到链式效果,可以级联调用。 1.2.特点 可以通过一个方法调用多个方法,将多个方法调用链接起来,形成一…

3D数字化展馆三维设计的特点及优势

随着互联网技术的迭代,web3D技术和虚拟现实技术逐渐发展成熟,我们发现“三维数字展馆”这个词汇已经慢慢进入我们的视野。 三维数字展馆是属于存在于线上WEB端的虚拟三维数字展馆,利用3D建模技术打造一个充满科技感且可无限延伸的空间&#x…

【Linux】基础开发工具——vim篇

目录 一、vim的基本概念1.1 正常/普通/命令模式1.2 插入模式1.3 底行模式 二、vim的基本操作2.1 进入vim2.2 模式切换2.3 退出vim 三、命令模式命令集3.1 移动光标3.2 复制/粘贴3.3 撤销3.4 剪切/删除3.5 更改 四、底行模式命令集4.1 多文本操作4.2 保存/退出4.3 命令执行4.4 调…

第六步:NVIC中断优先级分组

CM4内核支持256个中断,其中包含了16个内核中断和240个外部中断,并且具有256级的可编程中断设置。 STM32F4并没有使用CM4内核的全部东西,而是只用了它的一部分。 STM32F40xx/STM32F41xx总共有92个中断。 STM32F42xx/STM32F43xx则总共有96个中断…

ModaHub魔搭社区:UCloud优刻得镜像市场上线Milvus向量数据库镜像

近日,为了更好地满足客户在AI业务场景下的需要,UCloud优刻得镜像市场上线支持了Milvus向量数据库镜像。 随着时代发展,文档资料、图片、语音、视频影像等非结构化数据开始海量涌现。为了能够更好地使用这些数据,可以使用embedding…

Jmeter参数传递——将上一个接口的返回结果做为变量传入下一个接口参数中

我们以CSDN文章发布为例: CSDN博客 - 专业IT技术发表平台CSDN博客为中国软件开发者、IT从业人员、IT初学者打造交流的专业IT技术发表平台,全心致力于帮助开发者通过互联网分享知识,让更多开发者从中受益,一同和IT开发者用代码改变未来.https://blog.csdn.net/ 注&…

Spark学习(一)---Spark简介和运行环境

文章目录 1.Spark介绍1.1 Spark核心模块1.2 使用Spark写一个WordCount1.2 Spark运行环境1.2.1 Local模式1.2.2 Standalone 模式1.2.3 高可用模式(HA)模式1.2.4 Yarn模式 1.Spark介绍 Hadoop中的MapReduce框架在设计之初并不是为了满足循环迭代式数据流处理,因此在多…

DMDSC共享存储集群启动、关闭及介绍

DMDSC介绍 DM 共享存储数据库集群(DMDSC)。DM共享存储数据库集群,允许多个数据库实例同时访问、操作同一数据库,具有高可用、高性能、负载均衡等特性。DMDSC 支持故障自动切换和故障自动重加入,某一个数据库实例故障后…

FastDFS【FastDFS环境搭建_Linux、FastDFS指令、复习】(二)-全面详解(学习总结---从入门到深化)

目录 FastDFS环境搭建_Linux FastDFS指令 复习: FastDFS环境搭建_Linux 下载安装gcc 安装方式为yum安装(需网络): yum install gcc-c perl-devel pcre-devel openssl-devel zlib-devel wget 下载安装FastDFS wget https:/…

leetcode42. 接雨水(单调栈-java)

接雨水 leetcode42. 接雨水题目描述单调栈解题代码演示 单调栈专题 leetcode42. 接雨水 来源:力扣(LeetCode) 链接:https://leetcode.cn/problems/trapping-rain-water 题目描述 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图…

一章让你明白什么是权限

目录 🌏什么是Linux 权限? 🌏文件: 🌏目录: 🌏查看文件的权限 🌏权限针对的三类用户: 🌏ls -l 命令显示的意义 🌏修改文件的属性和权限 …

uni-app获取系统信息(手机牌子、手机型号、屏幕宽度、屏幕高度)

uni.getSystemInfo({success(res) {console.log(res.brand) //手机牌子console.log(res.model) //手机型号console.log(res.screenWidth) //屏幕宽度console.log(res.screenHeight) //屏幕高度}) .exec()}}); 如下 官网链接:系统信息的概念 | uni-app官网

基于Java学生作业管理系统设计实现(源码+lw+部署文档+讲解等)

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…