当前位置: 首页 > news >正文

【爬虫基础】第10讲 urlerror的使用及捕获异常

URLError是Python中的一个异常类,用于处理与URL相关的错误。它是urllib.error模块中的一个类。

URLError通常在以下情况下被引发:

  1. 网络连接问题:例如无法连接到服务器、超时等。
  2. URL不正确:例如无效的URL、无法解析主机名等。
  3. 服务器错误:例如服务器返回500错误。

以下是使用URLError处理URL连接错误的示例.我们尝试打开一个不存在的URL,并使用try-except语句来捕获可能发生的URLError异常。

如果包含code属性,则说明是服务器错误。

from urllib.request import Request,urlopen
from fake_useragent import UserAgent
from urllib.error import URLErrorurl='http://127.0.0.1:81/1123/'
headers = {'User-Agent' : UserAgent().chrome
}
req = Request(url,headers=headers)
try:resp = urlopen(req)print(resp.read().decode())
except URLError as e:# print(e)if e.args:print(e.args[0].errno)else:print(e.code)
print('爬取完毕')

 代码执行结果

如果URLError包含reason属性,则说明是网络连接问题;

 代码实现:

from urllib.request import Request,urlopen
from fake_useragent import UserAgent
from urllib.error import URLErrorurl='http://127.0.0.1:5000/zendao/'
headers = {'User-Agent' : UserAgent().chrome
}
req = Request(url,headers=headers)
try:resp = urlopen(req)print(resp.read().decode())
except URLError as e:# print(e)if e.args:print(e.args[0].errno)else:print(e.code)
print('爬取完毕')

执行结果:

参考异常调试返回结果

我们通过e.args函数来检查是否存在这些属性,并打印相应的错误信息。

需要注意的是,URLErrorHTTPError的父类,HTTPError是另一个与HTTP相关的异常类,用于处理HTTP请求错误(例如404错误)。如果需要更具体的错误处理,可以使用HTTPError来捕获HTTP请求错误。

相关文章:

【爬虫基础】第10讲 urlerror的使用及捕获异常

URLError是Python中的一个异常类,用于处理与URL相关的错误。它是urllib.error模块中的一个类。 URLError通常在以下情况下被引发: 网络连接问题:例如无法连接到服务器、超时等。URL不正确:例如无效的URL、无法解析主机名等。服务…...

绍兴越城中墙建材蒸压加气混凝土砌块使用注意事项可送塔山府山北海蕺山城南稽山迪荡灵芝东湖皋埠马山斗门鉴湖东浦孙端陶堰富盛

绍兴越城中墙建材蒸压加气混凝土砌块使用注意事项可送塔山府山北海蕺山城南稽山迪荡灵芝东湖皋埠马山斗门鉴湖东浦孙端陶堰富盛 使用蒸压加气混凝土砌块时需要注意以下事项: 选择符合国家标准的产品:选购时应查看产品质量证明书,确保产品符合…...

吴渔夫:AI技术引领游戏产业革命,小团队有大作为

AI技术的突飞猛进,游戏产业正在经历一场前所未有的变革。中国网游先锋,火石控股创始人吴渔夫,近日在接受第一财经日报的采访,对AI在游戏制作中的应用和未来趋势有着深刻的见解。 吴渔夫指出,AI技术的引入极大地降低了游…...

深入探索C++对象模型(二)

类对象占用的空间 #include "pch.h" #include <iostream> using namespace std;class A {public: };//类对象所占用的空间 int main() {//std::cout << "Hello World!\n"; A obja;int ilen = sizeof(obja); cout << ilen << endl…...

【javaWeb 第三篇】Vue快速入门

VUE vue是一套前端框架&#xff0c;免除原生的js的DOM操作&#xff0c;简化书写 基于MVVM&#xff08;model-view-viewmodel&#xff09;思想&#xff0c;实现数据的双向绑定&#xff0c;将编程的关注放在数据上。 什么是框架&#xff1a; 框架相当于一个半成品&#xff0c;是一…...

非root用户安装git lfs(git大文件)命令记录

背景 最近在看LLAMA2的模型&#xff0c;想直接从Huggingface下载模型到本地&#xff0c;但是却发现服务器上没有安装git lfs命令。查询了一些资料完成了非root用户安装git lfs命令的操作&#xff0c;特此记录。 Git LFS下载与解压 下载 Git LFS 二进制文件 访问 Git LFS 发布…...

PTA 道路管制

乌拉乌拉国有n个城市和m条道路&#xff0c;城市编号为1∼n。由于乌拉乌拉国每一个城市都在创城&#xff08;创建文明城市&#xff09;&#xff0c;因此&#xff0c;城市之间的道路通行施行道路交通管制&#xff1a; 已知从城市ui​到城市vi​的道路&#xff0c;需要时间ti​。…...

自媒体用ChatGPT批量洗稿软件V5.9环境配置/软件设置教程【汇总】

大家好&#xff0c;我是淘小白~ 首先&#xff0c;感谢大家的支持~~ ChatGPT采集洗稿软件V5.9版本更新&#xff0c;此次版本更新修改增加了一些内容&#xff1a; 1、自定义多条指令&#xff0c;软件自动判断指令条数&#xff0c;进行输入 2、增加谷歌浏览多账号轮询&#xf…...

【WPF应用7】 基本控件-Grid 布局的详解与示例

引言 WPF&#xff08;Windows Presentation Foundation&#xff09;是.NET框架的一部分&#xff0c;它提供了一个用于创建桌面应用程序用户界面的框架。在WPF中&#xff0c;Grid布局是一个非常强大的布局工具&#xff0c;它允许开发者创建复杂的、响应迅速的用户界面布局。Grid…...

flink-connector-redis支持select查询

EN 1 项目介绍 基于bahir-flink二次开发&#xff0c;相对bahir调整的内容有&#xff1a; 1.使用Lettuce替换Jedis,同步读写改为异步读写&#xff0c;大幅度提升了性能 2.增加了Table/SQL API&#xff0c;增加select/维表join查询支持 3.增加关联查询缓存(支持增量与全量) 4…...

[密码学] 密码学基础

目录 一 为什么要加密? 二 常见的密码算法 三 密钥 四 密码学常识 五 密码信息威胁 六 凯撒密码 一 为什么要加密? 在互联网的通信中&#xff0c;数据是通过很多计算机或者通信设备相互转发&#xff0c;才能够到达目的地,所以在这个转发的过程中&#xff0c;如果通信包…...

上海:6月1日起取消企业复工复产白名单制

财经新闻5月29日消息&#xff1a;上海市人民政府关于印发《上海市加快经济恢复振兴行动计划》的通知。 《方案》包括千方百计缓解各类市场主体困难&#xff0c;全面有序推进复工复产和市场复工复产&#xff0c;多措并举稳外资稳外贸&#xff0c;大力促进消费加速复苏&#xff0…...

SpringBoot扩展篇:循环依赖源码链路

SpringBoot扩展篇&#xff1a;循环依赖源码链路 1. 相关文章2. 一个简单的Demo3. 流程图3.1 BeanDefinition的注册3.2 开始创建Bean3.3 从三级缓存获取Bean3.4 创建Bean3.5 实例化Bean3.6 添加三级缓存3.7 属性初始化3.8 B的创建过程3.9 最终流程 1. 相关文章 SpringBoot 源码…...

服务消费微服务

文章目录 1.示意图2.环境搭建1.创建会员消费微服务模块2.删除不必要的两个文件3.检查父子模块的pom.xml文件1.子模块2.父模块 4.pom.xml 添加依赖&#xff08;刷新&#xff09;5.application.yml 配置监听端口和服务名6.com/sun/springcloud/MemberConsumerApplication.java 创…...

uni-app纵向步骤条

分享一下项目中自封装的步骤条&#xff0c;存个档~ 1. 话不多说&#xff0c;先看效果 2. 话还不多说&#xff0c;上代码 <template><!-- 获取一个数组&#xff0c;结构为[{nodeName:"流程发起"isAudit:falsetime:"2024-02-04 14:27:35"otherDat…...

【JavaEE -- 文件操作IO有关面试题】

文件操作IO有关面试题 1.查找硬盘上的文件位置1.1 思路1.2 执行代码 2. 实现文件复制2.1 思路2.2 代码执行 3. 打印搜索的词的文件路径3.1 思路3.2 代码执行 1.查找硬盘上的文件位置 给定一个文件名&#xff0c;去指定的目录中进行搜索&#xff0c;找到文件名匹配的结果&#…...

Open WebUI大模型对话平台-适配Ollama

什么是Open WebUI Open WebUI是一种可扩展、功能丰富、用户友好的大模型对话平台&#xff0c;旨在完全离线运行。它支持各种LLM运行程序&#xff0c;包括与Ollama和Openai兼容的API。 功能 直观的界面:我们的聊天界面灵感来自ChatGPT&#xff0c;确保了用户友好的体验。响应…...

[2021]Zookeeper getAcl命令未授权访问漏洞概述与解决

今天在漏洞扫描的时候蹦出来一个zookeeper的漏洞问题&#xff0c;即使是非zookeeper的节点&#xff0c;或者是非集群内部节点&#xff0c;也可以通过nc扫描2181端口&#xff0c;获取极多的zk信息。关于漏洞的详细描述参考apache zookeeper官方概述&#xff1a;CVE-2018-8012: A…...

vscode添加gitee

1.创建仓库 2.Git 全局设置 3.初始化仓库 2.1 打开vscode打开需要上传到给git的代码文件 2.2.点击左边菜单第三个的源代码管理->初始化仓库 4.点击加号暂存所有更改 5.添加远程仓库 5.1 添加地址&#xff0c;回车 5.2 填写库名&#xff0c;回车 6.提交和推送 6.1 点击✔提交…...

数据库底层原理

本文将介绍数据库在储存和通讯时的原理 数据库储存 首先&#xff0c;数据库的作用持久化存储数据&#xff0c;数据库的存储形式就是文件&#xff0c;每一张表就是一个文件&#xff0c;其他数据也是文件形式&#xff0c;比如索引文件。 比如像mysql数据库&#xff0c;其中的数…...

终极指南:如何灵活配置flamegraph性能分析参数生成自定义火焰图

终极指南&#xff1a;如何灵活配置flamegraph性能分析参数生成自定义火焰图 【免费下载链接】flamegraph Easy flamegraphs for Rust projects and everything else, without Perl or pipes <3 项目地址: https://gitcode.com/gh_mirrors/fla/flamegraph flamegraph是…...

MozJPEG色彩空间扩展终极指南:支持RGBX、BGRX等32位格式的完整教程

MozJPEG色彩空间扩展终极指南&#xff1a;支持RGBX、BGRX等32位格式的完整教程 【免费下载链接】mozjpeg Improved JPEG encoder. 项目地址: https://gitcode.com/gh_mirrors/mo/mozjpeg MozJPEG作为libjpeg-turbo的增强版本&#xff0c;不仅提供了卓越的JPEG压缩性能&a…...

Android14 SurfaceFlinger启动流程与线程调度机制解析

1. SurfaceFlinger的启动入口与初始化流程 Android显示系统的核心服务SurfaceFlinger由init进程启动&#xff0c;这个设计保证了它在系统早期就能准备好图形合成能力。main函数作为入口点&#xff0c;首先做了一系列关键初始化&#xff1a; 设置Binder线程池的最大线程数为4&…...

Android MQTT库在Android 13上的PendingIntent兼容性适配实战

1. 崩溃日志背后的PendingIntent适配危机 那天测试同事突然跑过来说&#xff1a;"你的MQTT推送在Android 13上炸了&#xff01;"我接过手机一看&#xff0c;果然闪退日志里赫然写着&#xff1a; java.lang.IllegalArgumentException: Targeting S (version 31 and …...

探索Ryujinx:Nintendo Switch模拟器全解析

探索Ryujinx&#xff1a;Nintendo Switch模拟器全解析 【免费下载链接】Ryujinx 用 C# 编写的实验性 Nintendo Switch 模拟器 项目地址: https://gitcode.com/GitHub_Trending/ry/Ryujinx 在游戏技术不断发展的今天&#xff0c;模拟器技术为玩家提供了跨平台体验游戏的可…...

Waveforms实战指南:基于React的交互式波形可视化深度解析

Waveforms实战指南&#xff1a;基于React的交互式波形可视化深度解析 【免费下载链接】waveforms An interactive, explorable explanation about the peculiar magic of sound waves. 项目地址: https://gitcode.com/gh_mirrors/wa/waveforms 在音频处理、信号分析和数…...

告别逐行阅读:这个终端工具让你的阅读速度提升200%

告别逐行阅读&#xff1a;这个终端工具让你的阅读速度提升200% 【免费下载链接】speedread A simple terminal-based open source Spritz-alike (per-word RSVP aligned on optimal reading points) 项目地址: https://gitcode.com/gh_mirrors/sp/speedread 在信息爆炸的…...

Java 25并发模型重构实战:用StructuredTaskScope替代CompletableFuture组合的4种高危写法(附JFR火焰图对比)

第一章&#xff1a;Java 25结构化并发演进全景图Java 25正式将结构化并发&#xff08;Structured Concurrency&#xff09;从孵化阶段&#xff08;JEP 428、437、444&#xff09;升级为标准特性&#xff0c;标志着JVM平台在并发模型抽象上完成关键跃迁。该机制通过作用域&#…...

nli-distilroberta-base在内容聚合平台中的落地:多源新闻事件一致性交叉验证

nli-distilroberta-base在内容聚合平台中的落地&#xff1a;多源新闻事件一致性交叉验证 1. 项目背景与价值 在信息爆炸的时代&#xff0c;内容聚合平台每天需要处理来自不同来源的海量新闻资讯。如何快速验证同一事件在不同报道中的一致性&#xff0c;成为平台内容质量管控的…...

服装打版辅助新思路:Nano-Banana软萌拆拆屋结构化拆解应用

服装打版辅助新思路&#xff1a;Nano-Banana软萌拆拆屋结构化拆解应用 1. 引言&#xff1a;当服装设计遇见“拆解魔法” 想象一下&#xff0c;你是一位服装设计师&#xff0c;面对一件构思精巧的连衣裙&#xff0c;如何向打版师清晰地传达它的内部结构&#xff1f;是画一堆复…...