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

Python爬虫——如何使用urllib的HTTP基本库

怎样通过 urllib库 发送 HTTP 请求?

 

urllib库主要由四个模块组成:

  • urllib.request 打开和读取 URL
  • urllib.error 包含 urllib.request 抛出的异常
  • urllib.parse 用于解析 URL
  • urllib.robotparser 用于解析 robots.txt 文件
1. 使用urllib.parse解析URL
  • 使用urlparse()分段URL

  • 在这里,我们用urlparse()函数构建了一个实例对象(ParseResult类型),并将其赋值给result,以便调用。

    事实上,ParseResult类型对象包含6个部分:

    • scheme,代表协议,通常在"://"前面,这里即http
    • netloc,代表域名,通常在第一个"/"前面,这里即docs.python.org:80
    • path,代表访问路径,通常在域名之后,这里即/3/library/urllib.parse.html
    • params,代表参数,通常在"?"之前,这里不存在
    • query,代表查询条件,通常在"?"之后,这里也不存在
    • fragment,代表瞄点,通常在"#"之后,用于直接定位页面内部的下拉位置,这里即url-parsing
  • 使用urlunparse()构造URL

  • 事实上,在urllib.parse中,解析URL的方法不仅有urlparse()函数,还有urlsplit()等;构造URL的方法不仅有urlunparse()函数,还有urlunspliturlencode()等。

2. 使用urllib.request打开 URL,模拟发送请求
  • 使用urllib.request.urlopen函数发送HTTP请求,构造对象

 

  • urllib.request.urlopen 函数构造一个接受请求的实例对象(HTTPResponse类型),并将其赋值给response变量,以便之后使用。

    read()方法可以得到返回的网页内容。事实上,HTTPResponse类型的对象,不仅可以调用read()getheaders()方法,还可以调用statusmsg属性来查看请求发送后返回的一系列信息。

  • 通过Request类灵活配置参数,构建请求信息对象

  • 这里我们依然使用urlopen()方法来发送HTTP请求,但是传递的不再是单纯的URL,而是一个Request类型的对象。通过集合各种参数,将其独立成一个对象,可以更加丰富和灵活地配置参数。

    这里的headers即为请求头,method即为请求方法

  • 使用Handler处理器进行高级操作(以Cookies处理为例)

  • HTTPCookieProcessorurllib.request模块里用于处理Cookie的一个类。值得注意的是这里打开链接的不再是request.urlopen()函数,而是用Opener对象的open()方法来发出请求。

3. 使用urllib.error捕捉请求错误,进行异常处理
  • 使用URLError类捕捉URL异常

     
    • 在这里如果发生网页不存在等请求异常,我们就可以通过URLError捕捉异常,从而避免程序的异常终止

    • 使用HTTPError类捕捉HTTP请求错误

       

相关文章:

Python爬虫——如何使用urllib的HTTP基本库

怎样通过 urllib库 发送 HTTP 请求? urllib库主要由四个模块组成: urllib.request 打开和读取 URLurllib.error 包含 urllib.request 抛出的异常urllib.parse 用于解析 URLurllib.robotparser 用于解析 robots.txt 文件 1. 使用urllib.parse解析URL 使用urlparse(…...

OceanBase v4.3特性解析:新功能“租户克隆”的场景与应用指南

熟悉或曾用过OceanBase的朋友,对于“多租户”这一理念定不陌生。OceanBase的租户概念,与我们熟知的传统数据库实例颇为相似。举例来说,OceanBase的租户支持MySQL兼容模式,对于用户而言,选用一个MySQL兼容模式的租户&am…...

RS3236-3.3YUTDN4功能和参数介绍及PDF资料

RS3236-3.3YUTDN4功能和参数介绍及PDF资料-公司新闻-配芯易-深圳市亚泰盈科电子有限公司 品牌: RUNIC(润石) 封装: XDFN-4-EP(1x1) 描述: 带过温保护 输出类型: 固定 最大输入电压: 7.5V 输出电压: 3.3V 最大输出电流: 500mA RS3236-3.3YUTDN4 是一款低压差线性稳压器&#x…...

Vue如何引入公用方法

文章目录 1. 在全局范围内引入2. 在单文件组件中引入3. 使用Vuex或Vue Composition API4. 使用mixins5. 使用插件 1. 在全局范围内引入 在你的main.js或main.ts文件中引入并注册你的公用方法,使得它们可以在整个Vue应用中使用。 // 引入你的公用方法文件 import {…...

Java面试题:ConcurrentHashMap

ConcurrentHashMap 一种线程安全的高效Map集合 jdk1.7之前 底层采用分段的数组链表实现 一个不可扩容的数组:segment[] 数组中的每个元素都对应一个HashEntry数组用以存放数据 当放入数据时,根据key的哈希值找到对应的segment数组下标 找到下标后就会添加一个reentrantlo…...

现在闪侠惠递寄快递有福利了,千万不要因没把握住而后悔呀!

闪侠惠递平台寄快递现在真的是太便宜了,优惠价格把握不住,后悔都来不及!大家可以在闪侠惠递上面寄快递,价格真的非常优惠呢,比咱们平常寄快递的价格都优惠呢,真的,小编都亲自替大家尝试过了呢。…...

vue+ant-design+formBuiler表单构建器——技能提升——form design——亲测有效

最近看到后端同事在弄一个后台管理系统,额,前端真的是夹缝中生存啊,AI抢饭碗,后端也想干前端的活儿。。。 他用到了表单构建器,具体效果如下: 网上有很多适用于ElementUi和ant-design的form design插件,下…...

Git 如何管理标签命令(tag)

1.查看本地仓库tag --1.查看本地仓库tag UserDESKTOP-2NRT2ST MINGW64 /e/GITROOT/STARiBOSS/STARiBOSS-5GCA (gw_frontend_master) $ git tag 1stBossUpgrade V10.0.1_20220224_test V10.0.1_20220301_test tag-gwfrontend-V1.0.12-230625 tag-gw_frontend-23.08.29 tag-gw_f…...

零样本身份保持:ID-Animator引领个性化视频生成技术新前沿

在最新的研究进展中,由Xuanhua He及其团队提出的ID-Animator技术,为个性化视频生成领域带来了突破性的创新。这项技术的核心在于其零样本(zero-shot)人物视频生成方法,它允许研究者和开发者根据单一的参考面部图像生成…...

在Go语言中,可以这样使用Json

在Go语言中,处理JSON数据通常涉及编码(将Go结构体转换为JSON字符串)和解码(将JSON字符串转换为Go结构体)。Go标准库中的encoding/json包提供了这些功能。第三方插件可以使用"github.com/goccy/go-json"也有同…...

React useEffect Hook: 理解和解决组件双重渲染问题

在React中,useEffect可能会在组件的每次渲染后运行,这取决于它的依赖项。如果你发现useEffect运行了两次,并且你正在使用React 18或更高版本的严格模式(Strict Mode),这可能是因为在开发模式下,…...

【C语言】—— 动态内存管理

【C语言】——动态内存管理 一、动态内存管理概述1.1、动态内存的概念1.2、动态内存的必要性 二、 m a l l o c malloc malloc 函数2.1、函数介绍2.2、应用举例 三、 c a l l o c calloc calloc 函数四、 f r e e free free 函数4.1、函数介绍4.2、应用举例 五、 r e a l l o …...

Oracle到PostgreSQL的不停机数据库迁移

1970 年,数据库之父 Edgar Frank Codd 发表了“数据的关系模型”论文,该论文为往后的关系型数据库的发展奠定了基础。1979 年,基于关系模型理论的数据库产品 Oracle 2 首次亮相,并在过去的三四十年时间里,横扫全球数据…...

OpenAI 发布新款大型语言模型 GPT-4o,带大家了解最新ChatGPT动态。

OpenAI 发布新款大型语言模型 GPT-4o 昨日OpenAI 举办了一场线上活动,正式发布了其最新研发的 AI 模型 GPT-4o,并详细介绍了该模型的强大功能和未来发展规划。此次发布标志着 AI 技术的重大突破,为用户提供了更加便捷、高效的 AI 工具&#…...

网络编程套接字(一) 【简单的Udp网络程序】

网络编程套接字<一> 理解源端口号和目的端口号PORT VS PID认识TCP协议和UDP协议网络字节序socket编程接口sockaddr结构简单的UDP网络程序服务端创建套接字服务端绑定运行服务器客户端创建套接字关于客户端的绑定问题启动客户端启动客户端本地测试INADDR_ANY 理解源端口号…...

【CANoe】CAPL中生成报告常用的测试函数

文章目录 一、常用函数1、测试标题、描述、Comment2、测试步骤3、延时4、报告中插入图片5、报告中插入窗口截图二、实例源码三、报告效果一、常用函数 1、测试标题、描述、Comment testCaseTitle("TC 3.1", "Test Case 3.1"); testCaseDescription...

WEB后端复习——MVC、SSM【含登录页面代码】

MVC&#xff08;Model-View-Controller&#xff09;是一种软件设计模式&#xff0c;用于将应用程序分解为三个相互关联的组件&#xff1a;模型&#xff08;Model&#xff09;、视图&#xff08;View&#xff09;和控制器&#xff08;Controller&#xff09;。这种模式在构建用户…...

灵卡科技HDMI音视频采集及H.264编码一体化采集卡—LCC260

推荐一款由灵卡科技倾力打造的高品质HDMI音视频采集卡——LCC260。以创新的技术&#xff0c;精湛的工艺和卓越的性能&#xff0c;为您提供全方位的音视频解决方案。 LCC260是一款集HDMI音视频采集与H.264编码于一身的全功能采集卡。它的输入端配备了最先进的HDMI 1.4a标准接口&…...

智能自助终端主板RK3288/RK3568在酒店前台自助机方案的应用,支持鸿蒙,支持免费定制

酒店前台自助机解决方案是一款基于自助服务终端&#xff0c;能够让客人通过简单的操作完成入住登记/退房的解决方案&#xff0c;大幅提高酒店的工作效率&#xff0c;提升客人体验&#xff0c;降低人力成本。 该方案解决了以下传统前台登记入住方式的痛点&#xff1a; 1、人流量…...

Visual Studio环境搭载

环境搭建步骤&#xff1a; 下载软件 安装软件 运行软件 1 下载软件 在百度搜索 visual studio&#xff0c;选择 如下图中的选项 进入Visual Studio 官网后&#xff0c;选择 下载Windows版&#xff0c;并选择Community 2017 社区版本进行下载保存软件到电脑中 2 安装软件 双击…...

BHVCC AI人工智能大鼠八臂视频迷宫实验步骤 八臂迷宫刺激器

八臂迷宫是一种用于研究动物空间记忆的迷宫模型。它由一个中心区和其周围连接的八条臂组成&#xff0c;在其中一些臂的末端放入食饵或将一些臂施以电击&#xff0c;根据动物的取食或逃避策略&#xff08;进入每个臂的次数、时间、错能&#xff08;如动物活动路径、各种时间、次…...

读2025世界前沿技术发展报告30海洋技术发展(下)

1. 强化无人及反无人作战能力建设1.1. 英美发布相关战略文件&#xff0c;顶层规划无人、反无人作战能力建设1.1.1. 《无人机战略》文件&#xff0c;分析无人系统对传统战争形态转变的影响1.1.2. 《反无人系统战略》1.1.2.1. ​包括设立联合反小型无人机系统办公室&#xff08;J…...

学习笔记:敢管,会管,善管——学校行政管理的进阶

管理者角色理解一、管理者在组织结构中的位置校级&#xff1a;领导者管理者中层干部&#xff1a;管理者执行者学校教师&#xff1a;执行者&#xff08;班主任对班级兼顾三者&#xff09;二、从普通教师到中层干部的转变&#xff1a;1.工作职责的变化:从运动员向教练员转变运动员…...

全球人形机器人革命浪潮涌动,特斯拉/微美全息聚焦AI具身量产应用新突破!

近日&#xff0c;特斯拉(TSLA.US)马斯克宣布开启人类历史上规模最大的芯片制造项目——TERAFAB&#xff0c;目标实现每年超过1太瓦的算力产出。该设施将整合芯片设计、光刻、制造等全流程&#xff0c;其生产的部分芯片未来将直接用于驱动特斯拉电动车以及人形机器人。人形机器人…...

深度揭秘ControlNet-v1-1 FP16模型:5大实战技巧突破SD1.5显存瓶颈

深度揭秘ControlNet-v1-1 FP16模型&#xff1a;5大实战技巧突破SD1.5显存瓶颈 【免费下载链接】ControlNet-v1-1_fp16_safetensors 项目地址: https://ai.gitcode.com/hf_mirrors/comfyanonymous/ControlNet-v1-1_fp16_safetensors ControlNet-v1-1_fp16_safetensors作…...

收藏 | RAG核心认知:从“检索+生成”到“实时智能”,小白也能秒懂大模型技术范式!

收藏 | RAG核心认知&#xff1a;从“检索生成”到“实时智能”&#xff0c;小白也能秒懂大模型技术范式&#xff01; RAG&#xff08;检索增强生成&#xff09;通过动态联动外部知识库与大语言模型&#xff08;LLM&#xff09;&#xff0c;构建“实时信息输入-精准内容输出”闭…...

终极指南:如何利用Storybook实现集中式日志组件管理

终极指南&#xff1a;如何利用Storybook实现集中式日志组件管理 【免费下载链接】storybook Storybook is the industry standard workshop for building, documenting, and testing UI components in isolation 项目地址: https://gitcode.com/GitHub_Trending/st/storybook…...

提升效率利器:用快马平台生成openclaw智能安装器,自动适配环境一键搞定

最近在折腾openclaw这个工具时&#xff0c;发现手动安装真是费时费力。不同操作系统、Python版本、网络环境都要适配不同的安装方案&#xff0c;光是查资料和试错就花了大半天。于是我用InsCode(快马)平台做了个智能安装配置器&#xff0c;把整个过程自动化了&#xff0c;效率提…...

网站目录结构对 SEO 的影响有哪些

网站目录结构对 SEO 的影响有哪些 在当前数字化时代&#xff0c;网站的SEO&#xff08;搜索引擎优化&#xff09;已成为提升网站流量和品牌影响力的关键因素。在SEO的诸多方面中&#xff0c;网站目录结构占据着重要地位。合理的目录结构不仅能提升用户体验&#xff0c;还能为搜…...

为什么在银河麒麟上配置telnet?安全风险与替代方案探讨

银河麒麟系统中Telnet协议的深度安全剖析与现代替代方案 在国产操作系统银河麒麟上配置传统网络服务时&#xff0c;技术决策者常面临一个经典困境&#xff1a;是沿用熟悉的Telnet协议快速解决问题&#xff0c;还是投入资源迁移到更安全的现代方案&#xff1f;这个问题看似简单&…...