Python常用第三方库入门:requests、beautifulsoup4、pandas 与 openpyxl
学到这里,你已经掌握了 Python 本身的大量基础能力,也学会了使用标准库处理文件、文本、网络请求。
但真实开发里,很多高频任务如果只依赖标准库,虽然不是不能做,却往往会显得:
- 代码更长;
- 可读性更差;
- 开发效率更低;
- 某些复杂能力实现起来很费劲。
这也是 Python 生态特别强大的原因之一:
当标准库解决不了问题,或者解决得不够优雅时,往往已经有成熟的第三方库可以直接用。
本文会围绕 Python 学习路径中最常见、最值得优先掌握的一批第三方库展开:
requests:更友好的 HTTP 客户端;beautifulsoup4:HTML 解析与网页信息提取;pandas:结构化数据分析与处理;openpyxl:Excel 文件读写。
理解这一章之后,你会明显感觉到:
- 写脚本的效率提升很大;
- 处理网页、接口、表格数据会轻松很多;
- 对 Python 生态的实战能力会更完整。
一、为什么还需要第三方库?
标准库当然很强,但它不是万能的。
比如:
- 你可以用标准库发网络请求,但
requests更易用; - 你可以自己用字符串或正则解析 HTML,但
beautifulsoup4更稳; - 你可以手写 CSV / JSON / 列表处理逻辑,但
pandas更适合表格数据分析; - 你可以操作 Office 文件的底层格式,但
openpyxl已经把 Excel 操作封装好了。
所以学习第三方库,并不是“放弃基础”,而是:
在理解基础的前提下,使用更适合真实任务的工具。
二、先建立一个正确认识:库不是越多越好
很多初学者会陷入两个极端:
- 要么完全不用第三方库;
- 要么遇到什么都想装一堆库。
更合理的原则是:
- 先理解标准库能做什么;
- 高频任务再引入成熟库;
- 优先学使用场景明确、社区成熟、文档完善的库。
这篇讲的 4 个库,就是典型的高频基础库。
三、requests:最常用的 HTTP 客户端之一
虽然上一章已经讲过它的基本使用,但放到“第三方库”这一篇里,还是值得正式总结一下。
3.1 安装
1 | pip install requests |
3.2 为什么它这么常用?
因为它解决了一个问题:
让 HTTP 请求写起来足够自然、足够好读。
例如:
1 | import requests |
这已经非常接近“人类描述需求”的方式了。
3.3 典型应用场景
- 调用 REST API;
- 提交表单;
- 获取网页内容;
- 下载文件;
- 编写网络自动化脚本。
3.4 一个 POST 请求示例
1 | import requests |
3.5 使用建议
以后只要是“同步 HTTP 请求”,你通常都可以优先想到它。
四、beautifulsoup4:从 HTML 中提取信息
4.1 为什么需要 HTML 解析库?
拿到网页源码后,如果你只用字符串查找或正则处理,通常很快就会遇到问题:
- HTML 层级结构复杂;
- 页面标签嵌套多;
- 页面稍微一改,代码就坏;
- 可读性很差。
所以更自然的做法是:
先把 HTML 解析成结构化对象,再去查找目标元素。
这就是 beautifulsoup4 的价值。
4.2 安装
1 | pip install beautifulsoup4 |
4.3 最基本的解析示例
1 | from bs4 import BeautifulSoup |
4.4 和 requests 结合使用
1 | import requests |
这就是最典型的网页抓取流程之一:
requests请求网页;BeautifulSoup解析 HTML;- 提取目标数据。
4.5 查找元素
1 | from bs4 import BeautifulSoup |
4.6 适用场景
- 网页内容提取;
- 简单爬虫;
- 解析 HTML 邮件模板;
- 分析抓取到的页面结构。
五、pandas:表格数据处理的核心工具之一
如果说前两个库主要用于“拿数据”,那么 pandas 很多时候是在“处理数据”。
5.1 为什么 pandas 这么重要?
因为大量真实数据都长得像表格:
- Excel 导出;
- CSV 报表;
- 数据统计结果;
- 日志整理结果;
- 接口批量数据。
如果你只用:
- 列表;
- 字典;
for循环;
当然也能做,但一旦数据量变大、转换逻辑复杂,就会迅速变乱。
而 pandas 提供了一个非常核心的结构:DataFrame。
你可以把它简单理解为:
Python 中专门处理表格数据的一种强大数据结构。
5.2 安装
1 | pip install pandas |
5.3 创建一个最简单的 DataFrame
1 | import pandas as pd |
5.4 读取 CSV
1 | import pandas as pd |
5.5 筛选数据
1 | import pandas as pd |
5.6 新增一列
1 | import pandas as pd |
5.7 保存为 CSV
1 | import pandas as pd |
5.8 pandas 特别适合什么?
- 表格清洗;
- 数据筛选;
- 分组统计;
- 缺失值处理;
- 报表导出;
- 数据分析原型。
即使你以后不做专业数据分析,掌握它也非常有价值。
六、openpyxl:处理 Excel 文件
CSV 很常见,但在实际办公和业务场景里,真正最常见的往往是 Excel。
Python 里操作 .xlsx 文件时,一个非常常用的库就是 openpyxl。
6.1 安装
1 | pip install openpyxl |
6.2 创建一个 Excel 文件
1 | from openpyxl import Workbook |
6.3 读取 Excel 文件
1 | from openpyxl import load_workbook |
6.4 修改单元格
1 | from openpyxl import load_workbook |
6.5 什么时候用 openpyxl,什么时候用 pandas?
可以简单理解为:
- 更偏数据分析和批量处理 →
pandas - 更偏 Excel 文件结构和单元格操作 →
openpyxl
它们并不是冲突关系,很多时候会一起用。
七、这些第三方库之间如何配合?
真实任务里,这些库经常不是单独使用,而是组合出现。
例如一个简单的数据采集脚本:
- 用
requests请求网页; - 用
BeautifulSoup提取页面信息; - 用
pandas整理成表格; - 最后导出为 Excel 或 CSV;
- 如果要细调 Excel 格式,再用
openpyxl处理。
这说明一个很重要的事实:
Python 生态的强大,不只是因为单个库很强,而是因为这些库能够自然地拼接成完整工作流。
八、一个综合示例:抓取页面标题并导出表格
下面写一个稍微完整一点的示例,把几个库串起来。
目标:
- 请求多个网页;
- 提取页面标题;
- 保存为 CSV。
1 | import pandas as pd |
这个脚本虽然不复杂,但已经体现出第三方库协作的典型方式。
九、学习第三方库时的常见误区
9.1 不要只背 API,不理解适用场景
例如:
- 你不需要一开始记住
pandas的所有方法; - 但你要知道“表格型数据处理”应优先想到它。
9.2 不要一上来就装很多库
学一个库最好的方式通常是:
- 明确一个小任务;
- 用这个库完成它;
- 顺便理解最常用的核心 API。
9.3 不要忽视版本和环境管理
第三方库意味着依赖管理。
所以你至少要逐渐习惯:
- 使用虚拟环境;
- 记录依赖版本;
- 在不同项目中隔离依赖。
9.4 不要把第三方库当黑盒
虽然使用层面可以很快上手,但你仍然要理解:
- 数据结构是什么;
- 输入输出是什么;
- 为什么这样设计;
- 出错时如何排查。
十、学习建议:这一章优先掌握什么?
10.1 高频优先顺序
如果你是通用 Python 学习者,一个非常实用的优先级通常是:
requestsbeautifulsoup4pandasopenpyxl
10.2 每个库先掌握 20% 的高频能力
例如:
requests:get、post、json、headers、timeoutBeautifulSoup:BeautifulSoup(...)、find、find_all、.textpandas:read_csv、DataFrame、筛选、导出openpyxl:创建、读取、遍历、写单元格
光是这些核心点,就已经非常有用了。
10.3 多做“真实小项目”最有效
例如:
- 抓网页信息导出 CSV;
- 读取 Excel 后做成绩统计;
- 批量清洗报表;
- 调接口并转成表格。
第三方库本来就是为真实问题服务的,所以一定要在真实任务中学。
十一、总结
这一篇我们系统梳理了 Python 中几类最常用的第三方库:
requests:用更友好的方式发送 HTTP 请求;beautifulsoup4:把 HTML 页面解析成结构化对象并提取信息;pandas:高效处理表格型数据;openpyxl:读写和修改 Excel 文件。
如果说标准库让你具备了“能做很多事”的基础,那么第三方库则进一步解决了一个现实问题:
如何用更成熟、更高效的方式,完成真实世界里的常见任务?
掌握这一篇之后,你对 Python 生态的理解就从“会写语言本身”,进一步走向了“会用工具解决问题”。
继续往后写时,比较自然的衔接方向通常有两个:
- Python数据库编程入门:和 SQLite、MySQL 等数据源交互;
- Python并发编程与异步入门:处理更复杂的任务调度和 I/O 场景。