Python网页处理与爬虫实战:使用Requests库进行网页数据抓取
✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。
我是Srlua小谢,在这里我会分享我的知识和经验。🎥
希望在这里,我们能一起探索IT世界的奥妙,提升我们的技能。🔮
记得先点赞👍后阅读哦~ 👏👏
📘📚 所属专栏:Python
欢迎访问我的主页:Srlua小谢 获取更多信息和资源。✨✨🌙🌙
目录
Python网页处理与爬虫实战:使用Requests库进行网页数据抓取
问题概述
Python与网页处理
安装requests 库
网页爬虫
拓展:Robots 排除协议
requests 库的使用
requests 库概述
requests 库中的网页请求函数
网页请求函数
Response 对象的属性
Response 对象的方法
获取一个网页内容
Python网页处理与爬虫实战:使用Requests库进行网页数据抓取

问题概述
Python 语言实现网络爬虫的问题引入

Python与网页处理
- Python 语言发展中有一个里程碑式的应用事件,即 美国谷歌( GOOGLE) 公司在搜索引擎后端采用 Python 语言进行链接处理和开发,这是该语言发展 成熟的重要标志。Python 语言的简洁性和脚本特点 非常适合链接和网页处理
- 万维网(WWW)的快速发展带来了大量获取和提 交网络信息的需求,这产生了“网络爬虫”等一系列 应用。
- Python 语言提供了很多类似的函数库,包括urllib 、urllib2、urllib3、wget、scrapy、requests 等。 这些库作用不同、使用方式不同、用户体验不同。
- 对于爬取回来的网页内容,可以通过re(正则表达 式)、beautifulsoup4等函数库来处理,随着该领 域各函数库的发展,本章将详细介绍其中最重要且最 主流的两个函数库:requests 和beautifulsoup4, 它们都是第三方库。
网络爬虫应用一般分为两个步骤:
(1)通过网络连接获取网页内容
(2)对获得的网页内容进行处理。
这两个步骤分别使用不同的函数库:requests 和 beautifulsoup4
安装requests 库
采用pip指令安装requests库,如果在Python2和Python3并存的系统中,采用pip3 指令 :\>pip install requests # 或者 pip3 install requests
采用pip或pip3指令安装beautifulsoup4库,注意,不要安装beautifulsoup库,后者由于年久失修 ,已经不再维护了 :\>pip install beautifulsoup4 # 或者 pip3 install beautifulsoup4
网页爬虫
使用Python语言实现网络爬虫和信息提交是非常简单的事情 ,代码行数很少,也无须知道网络通信等方面知识,非常适合 非专业读者使用。然而,肆意的爬取网络数据并不是文明现象 ,通过程序自动提交内容争取竞争性资源也不公平。就像那些 肆意的推销电话一样,他们无视接听者意愿,不仅令人讨厌也 有可能引发法律纠纷。
拓展:Robots 排除协议
Robots 排除协议(Robots Exclusion Protocol),也被称为爬虫协议,它是 网站管理者表达是否希望爬虫自动获取网络信息意愿的方法。管理者可以在网 站根目录放置一个robots.txt 文件,并在文件中列出哪些链接不允许爬虫爬取 。一般搜索引擎的爬虫会首先捕获这个文件,并根据文件要求爬取网站内容。
Robots 排除协议重点约定不希望爬虫获取的内容,如果没有该文件则表示网 站内容可以被爬虫获得,然而,Robots 协议不是命令和强制手段,只是国际 互联网的一种通用道德规范。绝大部分成熟的搜索引擎爬虫都会遵循这个协议 ,建议个人也能按照互联网规范要求合理使用爬虫技术。
——君子协议——
requests 库的使用
requests 库是一个简洁且简单的处理HTTP请求的第三方库。
requests 库概述
requests 的最大优点是程序编写过程更接近正常 URL 访问过程。
- 这个库建立在Python语言的urllib3库基础上,类似这种在其他函数库之上再封装功能提供更友好函数的方式在Python语言中十分常见。在Python的生态圈里,任何人都有通过技术创新或体验创新发表意 见和展示才华的机会。
- request 库支持非常丰富的链接访问功能,包括:国际域名和 URL 获取、HTTP 长连接和连接缓存、HTTP 会话和Cookie 保 持、浏览器使用风格的SSL 验证、基本的摘要认证、有效的键 值对Cookie 记录、自动解压缩、自动内容解码、文件分块上传 、HTTP(S) 代理功能、连接超时处理、流数据下载等。
- 有关 requests 库的更多介绍请访问: http://docs.python‐requests.org
requests 库中的网页请求函数

get() 是获取网页最常用的方式 , 在调用requests.get()函数后,返回的网页内容会保存为一 个Response对象,其中,get()函数的参数url 必须 链接采用HTTP 或HTTPS方式访问
网页请求函数

和浏览器的交互过程一样,requests.get()代表请求 过程,它返回的Response 对象代表响应。返回内容 作为一个对象更便于操作,Response 对象的属性如 下表所示,需要采用<a>.<b>形式使用。
Response 对象的属性

- status_code 属性返回请求HTTP 后的状态,在处理数据之前要先判断状态情况,如果请求未被响应, 需要终止内容处理。
- text 属性是请求的页面内容,以字符串形式展示。
- encoding 属性非常重要,它给出了返回页面内容的编码方式,可以通过对encoding属性赋值更改编码 方式,以便于处理中文字符
- content 属性是页面内容的二进制形式

Response 对象的方法

- json() 方法能够在HTTP响应内容中解析存在的 JSON 数据,这将带来解析HTTP的便利。
- raise_for_status()方法能在非成功响应后产生异常,即只要返 回的请求状态status_code 不是200,这个方法会产生一个异 常,用于try…except 语句。使用异常处理语句可以避免设置一 堆复杂的if 语句,只需要在收到响应调用这个方法,就可以避 开状态字200 以外的各种意外情况。
- requests 会产生几种常用异常。当遇到网络问题时,如: DNS查询失败 、 拒绝连接等 , requests 会 抛 出 ConnectionError 异常;遇到无效HTTP 响应时,requests 则 会抛出HTTPError 异常;若请求url 超时,则抛出Timeout 异 常; 若请求超过了设定的最大重定向次数, 则会抛出一个 TooManyRedirects 异常
获取一个网页内容

实战示例:
Python爬虫项目实战案例-批量下载网易云榜单音乐保存至本地_python爬取制定名称歌曲并下载-CSDN博客
希望对你有帮助!加油!
若您认为本文内容有益,请不吝赐予赞同并订阅,以便持续接收有价值的信息。衷心感谢您的关注和支持!
相关文章:
Python网页处理与爬虫实战:使用Requests库进行网页数据抓取
✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…...
HOW - vscode 使用指南
目录 一、基本介绍1. 安装 VS Code2. 界面介绍3. 扩展和插件4. 设置和自定义 二、常用界面功能和快捷操作(重点)常用界面功能快捷操作 三、资源和支持 Visual Studio Code(VS Code)是一款由微软开发的免费、开源的代码编辑器&…...
刚刚!《国家科学技术奖励条例》迎来最新修订
【SciencePub学术】《国务院关于修改〈国家科学技术奖励条例〉的决定》已经于2024年5月11日国务院第32次常务会议通过,现予公布: 国务院决定对《国家科学技术奖励条例》作如下修改: 一、将第二条修改为:“国家设立下列国家科学技术…...
MySQL -- SQL笔试题相关
1.银行代缴花费bank_bill 字段名描述serno流水号date交易日期accno账号name姓名amount金额brno缴费网点 serno: 一个 BIGINT UNSIGNED 类型的列,作为主键,且不为空。该列是自动增量的,每次插入新行时,都会自动递增生成一个唯一的…...
VB6 MQTT为什么在物联网应用中使用 MQTT 而不是 HTTP?
有需要VBA,VB6,VB.NET等方面的MQTT的可以找我 一、MQTT简介 MQTT被广泛用于物联网(IoT:Internet of Things)领域,其中大量的设备需要进行实时通信和数据交换。它采用了一种发布/订阅(publish/subscribe)模型,其中消息的发送者(发布者&#…...
软设之希尔排序
假设有n个元素,先取一个小于n的整数d1作为一个增量,把文件的全部记录分成d1个组。所有距离为d1的倍数的记录放在同一个组中。先在各组中进行直接插入排序;然后,取第二个增量d2<d1重复上诉的分组和排序,直到所取得增量dt1&#…...
WPF Binding对象
在WinForm中,我们要想对控件赋值,需要在后台代码中拿到控件对象进行操作,这种赋值形式,从根本上是无法实现界面与逻辑分离的。 在WPF中,微软引入了Binding对象,通过Binding,我们可以直接将控件与…...
Educational Codeforces Round 127 D. Insert a Progression
Insert a Progression time limit per test: 2 second memory limit per test: 256 megabytes input: standard input output: standard output You are given a sequence of n n n integers a 1 , a 2 , … , a n a_1, a_2, \dots, a_n a1,a2,…,an. You are also giv…...
树莓集团:构筑全国数字影像生态链
在数字化浪潮席卷全球的今天,数字影像技术正以前所未有的速度改变着我们的生活。成都树莓集团以远见卓识和坚定步伐,专注于全国数字影像生态链的建设,不断推动着文创产业的创新与发展。 树莓集团致力于打造一个完整的数字影像生态链ÿ…...
物联网——TIM定时器、PWM驱动呼吸灯、舵机和直流电机
定时器概念(常用于输出PWM波形,驱动电机) 时间脉冲数时钟周期; 这里的脉冲数6553665536,支持定时器级联,从而延长定时 定时器类型 基本定时器原理图(UI:更新中断, U:更新事件&#…...
Elasticsearch 认证模拟题 -2
一、题目 有一个索引 task3,其中有 fielda,fieldb,fieldc,fielde 现要求对 task3 重建索引,重建后的索引新增一个字段 fieldg 其值是fielda,fieldb,fieldc,fielde 的值拼接而成。 …...
Java-----Comparable接口和Comparator接口
在Java中,我们会经常使用到自定义类,那我们如何进行自定义类的比较呢? 1.Comparable接口 普通数据的比较 int a10;int b91;System.out.println(a<b); 那自定义类型可不可以这样比较呢?看一下代码 我们发现会报错,因为自定义…...
通信技术体会
比如 pcie可以看成是全连接的ahb bus,但又不是。 因为pcie还是axi(神似split/cutthrough)。(axi更多是接口而不是bus)。 pcie虽然物理层和usb都是serdes,但transaction layer就是上面这样的,也就…...
Linux系统安全及其应用
文章目录 一、用户账号安全管理1.1 系统账号的清理1.2 对用户账号的操作1.2.1 锁定和解锁用户1.2.2 删除无用账号 1.3 对重要文件进行锁定1.4 密码安全控制1.4.1 新建用户1.4.2 已有用户 二、历史命令管理2.1 历史命令限制2.2 自动清空历史命令 三、设置终端登录的安全管理3.1 …...
JVM内存划分类加载的过程双亲委派模型的详解
JVM内存划分 JVM也就是java进程,这个进程一旦跑起来就会从操作系统这里申请一大块内存空间,JVM接下来就要进一步的对这个大的空间进行划分,划分成不同区域,从而每个区域都有不同的功能作用,一共分为如下几个区域 1.堆…...
Java异常详解
Java异常详解 前言一、异常类的定义Java异常异常类的构成Java常见运行错误异常示例除以 0数组下标越界访问 null 对象 防御式编程异常的好处LBYL 风格的代码EAFP 风格的代码 二、异常的基本用法捕获异常基本语法代码示例不处理异常使用 try catch 后的程序执行过程catch 只能处…...
C++入门3——类与对象2(类的6个默认成员函数)
目录 1.类的6个默认成员函数 2. 构造函数 2.1 构造函数的概念 2.2 构造函数的特性 3. 析构函数 3.1 析构函数的概念 3.2 析构函数的特性 4.拷贝构造函数 4.1 拷贝构造函数的概念 4.2 拷贝构造函数的特性 5.赋值运算符重载函数 5.1运算符重载函数 5.2 赋值运算符重…...
CobaltStrike基本渗透
目录 CobaltStrike简介 主要功能: 使用注意: 在使用CobaltStrike进行渗透测试时,务必遵守法律法规,并获得合法授权。 CobaltStrike安装 前提 安装 服务端安装 windows安装 CS基本使用 监听器配置 一些基本的攻击…...
【linux深入剖析】进程间通信
🍁你好,我是 RO-BERRY 📗 致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 🎄感谢你的陪伴与支持 ,故事既有了开头,就要画上一个完美的句号,让我们一起加油 目录 1.进程间通信目的2. 什么…...
关系数据库:关系模式
文章目录 基本概述关系的相关名词术语笛卡儿积与关系关系的类型 关系模式总结 基本概述 关系的相关名词术语 关系:简单来说,就是一张二维表格。属性(Attribute):也称字段或列,在现实世界中,要描述一个事务常常取若干…...
进程地址空间(比特课总结)
一、进程地址空间 1. 环境变量 1 )⽤户级环境变量与系统级环境变量 全局属性:环境变量具有全局属性,会被⼦进程继承。例如当bash启动⼦进程时,环 境变量会⾃动传递给⼦进程。 本地变量限制:本地变量只在当前进程(ba…...
第25节 Node.js 断言测试
Node.js的assert模块主要用于编写程序的单元测试时使用,通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试,通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...
关于 WASM:1. WASM 基础原理
一、WASM 简介 1.1 WebAssembly 是什么? WebAssembly(WASM) 是一种能在现代浏览器中高效运行的二进制指令格式,它不是传统的编程语言,而是一种 低级字节码格式,可由高级语言(如 C、C、Rust&am…...
浅谈不同二分算法的查找情况
二分算法原理比较简单,但是实际的算法模板却有很多,这一切都源于二分查找问题中的复杂情况和二分算法的边界处理,以下是博主对一些二分算法查找的情况分析。 需要说明的是,以下二分算法都是基于有序序列为升序有序的情况…...
SiFli 52把Imagie图片,Font字体资源放在指定位置,编译成指定img.bin和font.bin的问题
分区配置 (ptab.json) img 属性介绍: img 属性指定分区存放的 image 名称,指定的 image 名称必须是当前工程生成的 binary 。 如果 binary 有多个文件,则以 proj_name:binary_name 格式指定文件名, proj_name 为工程 名&…...
GitHub 趋势日报 (2025年06月06日)
📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 590 cognee 551 onlook 399 project-based-learning 348 build-your-own-x 320 ne…...
MySQL:分区的基本使用
目录 一、什么是分区二、有什么作用三、分类四、创建分区五、删除分区 一、什么是分区 MySQL 分区(Partitioning)是一种将单张表的数据逻辑上拆分成多个物理部分的技术。这些物理部分(分区)可以独立存储、管理和优化,…...
破解路内监管盲区:免布线低位视频桩重塑停车管理新标准
城市路内停车管理常因行道树遮挡、高位设备盲区等问题,导致车牌识别率低、逃费率高,传统模式在复杂路段束手无策。免布线低位视频桩凭借超低视角部署与智能算法,正成为破局关键。该设备安装于车位侧方0.5-0.7米高度,直接规避树枝遮…...
AI语音助手的Python实现
引言 语音助手(如小爱同学、Siri)通过语音识别、自然语言处理(NLP)和语音合成技术,为用户提供直观、高效的交互体验。随着人工智能的普及,Python开发者可以利用开源库和AI模型,快速构建自定义语音助手。本文由浅入深,详细介绍如何使用Python开发AI语音助手,涵盖基础功…...
实战三:开发网页端界面完成黑白视频转为彩色视频
一、需求描述 设计一个简单的视频上色应用,用户可以通过网页界面上传黑白视频,系统会自动将其转换为彩色视频。整个过程对用户来说非常简单直观,不需要了解技术细节。 效果图 二、实现思路 总体思路: 用户通过Gradio界面上…...

