爬虫中的异常处理

2023-10-27

URLError和HTTPError

HTTPError类是URLError类的子类

导入包 import urllib.error

http 错误是针对浏览器无法连接到服务器而增加的错误提示。引导并告诉浏览者该页是哪里出现了问题。

通过urllib发送请求的时候,有可能发送失败,这时可通过try–except 进行捕获,异常有2类,URLError,HTTPError。

测试代码:

# _*_ coding: utf-8 _*_

# @Time : 2021/12/1 20:29

# @Author : Ritchie

# @File : 21_爬虫异常

# @Project : PyCode

import urllib.request

import urllib.parse

import urllib.error

‘https://blog.csdn.net/flysh13?spm=1001.2014.3001.5343’

url =‘https://blog1.csdn.net/flysh13?spm=1001.2014.3001.5343’

headers = {

‘user-agent’:‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36’

}

try:

request = urllib.request.Request(url=url, headers=headers)

response = urllib.request.urlopen(request)

content = response.read().decode('utf-8')

print(content)

except urllib.error.HTTPError:

print('系统正在升级...')

except urllib.error.URLError:

print("主机服务停止.....")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

爬虫中的异常处理 的相关文章

  • Twisted 的 Deferred 和 JavaScript 中的 Promise 一样吗?

    我开始在一个需要异步编程的项目中使用 Twisted 并且文档非常好 所以我的问题是 Twisted 中的 Deferred 与 Javascript 中的 Promise 相同吗 如果不是 有什么区别 你的问题的答案是Yes and No
  • opencv水印周围的轮廓

    我想在图像中的水印周围画一个框 我已经提取了水印并找到了轮廓 但是 不会在水印周围绘制轮廓 轮廓是在我的整个图像上绘制的 请帮我提供正确的代码 轮廓坐标的输出为 array 0 0 0 634 450 634 450 0 dtype int
  • Kivy - 有所有颜色名称的列表吗?

    在 Kivy 中 小部件 color属性允许输入其值作为字符串颜色名称 也 例如在 kv file Label color red 是否有所有可能的颜色名称的列表 就在这里 来自Kivy 的文档 https kivy org doc sta
  • 检查 Python 中的可迭代对象中的所有元素的谓词是否计算为 true

    我很确定有一个常见的习语 但我无法通过谷歌搜索找到它 这是我想做的 用Java Applies the predicate to all elements of the iterable and returns true if all ev
  • Python 2.7 中的断言对我来说不起作用示例assertIn

    我的 Mac 上安装了 python 2 7 通过在终端中运行 python v 进行验证 当我尝试使用任何新的 2 7 断言方法时 我收到 AtributeError 我看过http docs python org 2 library u
  • pyspark 数据框中的自定义排序

    是否有推荐的方法在 pyspark 中实现分类数据的自定义排序 我理想地寻找 pandas 分类数据类型提供的功能 因此 给定一个数据集Speed列 可能的选项是 Super Fast Fast Medium Slow 我想实现适合上下文的
  • Python 中的流式传输管道

    我正在尝试使用 Python 将 vmstat 的输出转换为 CSV 文件 因此我使用类似的方法转换为 CSV 并将日期和时间添加为列 vmstat 5 python myscript py gt gt vmstat log 我遇到的问题是
  • 工作日重新订购 Pandas 系列

    使用 Pandas 我提取了一个 CSV 文件 然后创建了一系列数据来找出一周中哪几天崩溃最多 crashes by day bc DAY OF WEEK value counts 然后我将其绘制出来 但当然它按照与该系列相同的排名顺序绘制
  • sklearn 中的 pca.inverse_transform

    将我的数据拟合后 X 我的数据 pca PCA n components 1 pca fit X X pca pca fit transform X 现在 X pca 具有一维 当我根据定义执行逆变换时 它不是应该返回原始数据 即 X 二维
  • 没有名为 StringIO 的模块

    我有Python 3 6 我想从另一个名为 run py 的 python 文件执行名为 operation py 的 python 文件 In operation py I do from cStringIO import StringI
  • 将非 www 和非 http 重定向到 https

    昨天我在服务器上安装了 SSL 从那以后我无法访问某些页面 www example com amsterdam shoes example com 阿姆斯特丹 两者都不会重定向到 https 甚至不会重定向到 http www exampl
  • 使用 python 绘制正值小提琴图

    我发现小提琴图信息丰富且有用 我使用 python 库 seaborn 然而 当应用于正值时 它们几乎总是在低端显示负值 我发现这确实具有误导性 尤其是在处理现实数据集时 在seaborn的官方文档中https seaborn pydata
  • 使用Python计算目录的大小?

    在我重新发明这个特殊的轮子之前 有没有人有一个很好的例程来使用 Python 计算目录的大小 如果例程能够很好地以 Mb Gb 等格式格式化大小 那就太好了 这会遍历所有子目录 总结文件大小 import os def get size s
  • Geodjango距离查询未检索到正确的结果

    我正在尝试根据地理位置的接近程度来检索一些帖子 正如您在代码中看到的 我正在使用 GeoDjango 并且代码在视图中执行 问题是距离过滤器似乎被完全忽略了 当我检查查询集上的距离时 我得到了预期距离 1m 和 18km 但 18km 的帖
  • 动态过滤 pandas 数据框

    我正在尝试使用三列的阈值来过滤 pandas 数据框 import pandas as pd df pd DataFrame A 6 2 10 5 3 B 2 5 3 2 6 C 5 2 1 8 2 df df loc df A gt 0
  • 混淆矩阵不支持多标签指示符

    multilabel indicator is not supported是我在尝试运行时收到的错误消息 confusion matrix y test predictions y test is a DataFrame其形状为 Horse
  • 如何与其他用户一起使用 pyenv?

    如何与其他用户一起使用 pyenv 例如 如果我在用户 test 的环境中安装了 pyenv 则当我以 test 身份登录时可以使用 pyenv 但是 当我以其他用户 例如 root 身份登录时如何使用 pyenv 即使你这么做了 我也会s
  • python 线程安全可变对象复制

    Is 蟒蛇的copy http docs python org 2 library copy html模块线程安全吗 如果不是 我应该如何在 python 中以线程安全的方式复制 deepcopy 可变对象 蟒蛇的GIL http en w
  • 多个对象以某种方式相互干扰[原始版本]

    我有一个神经网络 NN 当应用于单个数据集时 它可以完美地工作 但是 如果我想在一组数据上运行神经网络 然后创建一个新的神经网络实例以在不同的数据集 甚至再次同一组数据 上运行 那么新实例将产生完全错误的预测 例如 对 XOR 模式进行训练
  • 查找总和为给定数字的值组合的函数

    这个帖子查找提供的 Sum 值的组合 https stackoverflow com a 20194023 1561176呈现函数subsets with sum 它在数组中查找总和等于给定值的值的组合 但由于这个帖子已经有6年多了 我发这

随机推荐

  • 在 CentOS 5/6 和 RHEL 5/6 上安装 PostgreSQL 9.1

    PostgreSQL 是一个开源的对象关系型 高度可扩展 兼容 SQL 的数据库管理系统 本文将帮助您在 CentOS 5 6 和 RHEL 5 6 上安装 PostgreSQL 9 1 第1步 添加 PostgreSQL Yum 存储库
  • 如何使用 PowerShell 从 Windows 命令行发送电子邮件

    发送电子邮件是当今数字时代的一项基本任务 作为系统管理员 您可能需要从命令行发送电子邮件以自动执行此任务 在本文中 我们将向您展示如何使用 PowerShell 从 Windows 命令行发送电子邮件 从而简化您的电子邮件通信并提高您的工作
  • 如何在 Ubuntu 20.04 上安装 Elasticsearch

    Elasticsearch 是一个开源分布式全文搜索和分析引擎 它支持 RESTful 操作 允许您实时存储 搜索和分析大量数据 Elasticsearch 是最流行的搜索引擎之一 为具有复杂搜索要求的应用程序 例如大型电子商务商店和分析应
  • Bash while 循环

    循环是编程语言的基本概念之一 当您想要多次运行一系列命令直到满足特定条件时 循环会很方便 在 Bash 等脚本语言中 循环对于自动执行重复任务非常有用 Bash 脚本中有三种基本的循环结构 for loop while循环 并且直到循环 本
  • 在 Python 中解析 JSON 数据

    JSON 是一种人类可读的基于文本的数据格式 它与语言无关 用于应用程序之间的数据交换 在本文中 我们将解释如何在 Python 中解析 JSON 数据 Python JSON The json允许您对 JSON 数据进行编码和解码的模块是
  • 如何在 CentOS 7 上安装 Google Chrome 网络浏览器

    谷歌浏览器是世界上使用最广泛的网络浏览器 它是专为现代网络构建的快速 易于使用且安全的浏览器 Chrome 不是开源浏览器 也不包含在 CentOS 存储库中 它是基于Chromium 一个开源浏览器 可在EPEL 存储库 本教程介绍如何在
  • Bash 中断并继续

    循环允许您多次运行一个或多个命令 直到满足特定条件 但是 有时您可能需要更改循环流程并终止循环或仅终止当前迭代 在巴什中 break and continue语句允许您控制循环执行 Bash break陈述 The break语句终止当前循
  • 如何在 Ubuntu 18.04 上安装和使用 FFmpeg

    FFmpeg 是一个免费的开源命令行工具 用于对多媒体文件进行转码 它包含一组共享的音频和视频库 例如libavcodec libavformat和libavutil 使用 FFmpeg 您可以在各种视频和音频格式之间进行转换 设置采样率以
  • 如何在 Ubuntu 20.04 上安装 Webmin

    Webmin 是一个用于管理 Linux 服务器的开源 Web 控制面板 它允许您管理系统用户 组 磁盘配额以及安装和配置 Web ssh ftp 电子邮件和数据库服务器 With Webmin 您可以通过网络浏览器配置系统的几乎每个方面
  • Linux 中的 Wc 命令(统计行数、字数和字符数)

    在 Linux 和类 Unix 操作系统上 wc命令允许您计算每个给定文件或标准输入的行数 字数 字符数和字节数并打印结果 在本教程中 我们将向您展示如何使用wc通过简单实用的例子进行指挥 如何使用wc命令 语法为wc命令如下 wc OPT
  • 如何在 Ubuntu 20.04 上安装 Python 3.9

    Python 是世界上最流行的编程语言之一 它是一种多功能语言 用于构建各种应用程序 从简单的脚本到复杂的机器学习算法 凭借其简单易学的语法 Python 成为初学者和经验丰富的开发人员的热门选择 Python 3 9 是 Python 语
  • 如何修复 WordPress 白屏死机

    如果您有 WordPress 网站 则其中之一最常见的错误您可能会遇到白屏死机 WSOD 然而 经历它可能会很可怕 因为您可能想知道 WSOD 的根本原因 并且不知道下一步 WSOD 可能有多种可能的原因 确定它们并不容易 特别是如果您不熟
  • 如何在 CentOS 7 上安装 Go

    Go 通常称为 golang 是由 Google 创建的现代开源编程语言 许多流行的应用程序 包括 Kubernetes Docker Hugo 和 Caddy 都是用 Go 编写的 在本教程中 我们将向您展示如何在 CentOS 7 系统
  • 如何在 Ubuntu 18.04 上安装 VirtualBox

    虚拟盒子是一款开源跨平台虚拟化软件 允许您同时运行多个来宾操作系统 虚拟机 在本教程中 我们将向您展示如何在 Ubuntu 18 04 计算机上安装 VirtualBox 的两种不同方法 第一种方法描述了从 Oracle 存储库安装 Vir
  • 转化为布尔值的规则

    对于基本类型的数据 null和undefined直接转化为false 字符串 空字符串转化为false 其他全为true 数字 0和NaN转化为false 其他全为true 对于引用类型数据 全为true 所以 的结果是true 分析 中
  • 电脑数据恢复,哪种方法靠谱?

    信息化时代 电脑的需求增加了 那么很多的数据都会保存在电脑上面 万一数据丢失了 那么有什么办法能恢复呢 要想恢复电脑里面丢失的数据 也不是没有办法找回的 可以借助专业的数据恢复软件EasyRecovery进行恢复 访问http wm mak
  • 【Linux】配置网络和firewall防火墙(超详细介绍+实战)

    Liunx学习记录篇 篇一 Linux VMware安装unbuntu18 04虚拟机 超详细步骤 附镜像文件 篇二 Linux ubuntu18 04系统基础配置及操作 篇三 Linux 用户与组的操作详细介绍 篇四 Linux 管理Li
  • 彻底搞懂==和equals的区别

    概述 一提 和equals的区别很多人就会说前者是比较地址 即是否是同一个对象 而equals则是比较对象的内容是否一样 其实这是太正确的 接下来仔细分析这俩者的区别 文章目录 1 基本数据类型存储的位置 2 3 为什么所有的java类都是
  • 结构体成员内存对齐规则

    关于结构体成员内存对齐 主要有以下三方面原则 原则1 结构体中元素是按照定义顺序一个一个放到内存中去的 但并不是 紧密排列的 从结构体存储的首地址开始 每一个元素放置到内存中时 它都 会认为内存是以它自己的大小来划分的 因此元素放置的位置一
  • 爬虫中的异常处理

    URLError和HTTPError HTTPError类是URLError类的子类 导入包 import urllib error http 错误是针对浏览器无法连接到服务器而增加的错误提示 引导并告诉浏览者该页是哪里出现了问题 通过ur