Python常用第三方库入门:requestsbeautifulsoup4pandasopenpyxl

学到这里,你已经掌握了 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
2
3
4
5
import requests

response = requests.get('https://httpbin.org/get', timeout=5)
print(response.status_code)
print(response.json())

这已经非常接近“人类描述需求”的方式了。

3.3 典型应用场景
  • 调用 REST API;
  • 提交表单;
  • 获取网页内容;
  • 下载文件;
  • 编写网络自动化脚本。
3.4 一个 POST 请求示例
1
2
3
4
5
6
7
8
9
10
import requests

payload = {
'name': 'Alice',
'age': 20,
}

response = requests.post('https://httpbin.org/post', json=payload, timeout=5)
response.raise_for_status()
print(response.json())
3.5 使用建议

以后只要是“同步 HTTP 请求”,你通常都可以优先想到它。


四、beautifulsoup4:从 HTML 中提取信息

4.1 为什么需要 HTML 解析库?

拿到网页源码后,如果你只用字符串查找或正则处理,通常很快就会遇到问题:

  • HTML 层级结构复杂;
  • 页面标签嵌套多;
  • 页面稍微一改,代码就坏;
  • 可读性很差。

所以更自然的做法是:

先把 HTML 解析成结构化对象,再去查找目标元素。

这就是 beautifulsoup4 的价值。

4.2 安装
1
pip install beautifulsoup4
4.3 最基本的解析示例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
from bs4 import BeautifulSoup

html = '''
<html>
<head><title>Python Demo</title></head>
<body>
<h1>欢迎学习 Python</h1>
<a href="https://example.com">示例链接</a>
</body>
</html>
'''

soup = BeautifulSoup(html, 'html.parser')
print(soup.title.string)
print(soup.h1.text)
print(soup.a['href'])
4.4 和 requests 结合使用
1
2
3
4
5
6
7
8
import requests
from bs4 import BeautifulSoup

response = requests.get('https://example.com', timeout=10)
response.raise_for_status()

soup = BeautifulSoup(response.text, 'html.parser')
print(soup.title.string)

这就是最典型的网页抓取流程之一:

  1. requests 请求网页;
  2. BeautifulSoup 解析 HTML;
  3. 提取目标数据。
4.5 查找元素
1
2
3
4
5
6
7
8
9
10
11
12
13
14
from bs4 import BeautifulSoup

html = '''
<ul>
<li class="item">Python</li>
<li class="item">Java</li>
<li class="item">Go</li>
</ul>
'''

soup = BeautifulSoup(html, 'html.parser')
items = soup.find_all('li', class_='item')
for item in items:
print(item.text)
4.6 适用场景
  • 网页内容提取;
  • 简单爬虫;
  • 解析 HTML 邮件模板;
  • 分析抓取到的页面结构。

五、pandas:表格数据处理的核心工具之一

如果说前两个库主要用于“拿数据”,那么 pandas 很多时候是在“处理数据”。

5.1 为什么 pandas 这么重要?

因为大量真实数据都长得像表格:

  • Excel 导出;
  • CSV 报表;
  • 数据统计结果;
  • 日志整理结果;
  • 接口批量数据。

如果你只用:

  • 列表;
  • 字典;
  • for 循环;

当然也能做,但一旦数据量变大、转换逻辑复杂,就会迅速变乱。

pandas 提供了一个非常核心的结构:DataFrame

你可以把它简单理解为:

Python 中专门处理表格数据的一种强大数据结构。

5.2 安装
1
pip install pandas
5.3 创建一个最简单的 DataFrame
1
2
3
4
5
6
7
8
9
import pandas as pd

data = {
'name': ['Alice', 'Bob', 'Cindy'],
'score': [95, 88, 76],
}

df = pd.DataFrame(data)
print(df)
5.4 读取 CSV
1
2
3
4
import pandas as pd

df = pd.read_csv('students.csv')
print(df.head())
5.5 筛选数据
1
2
3
4
5
import pandas as pd

df = pd.read_csv('students.csv')
passed = df[df['score'] >= 60]
print(passed)
5.6 新增一列
1
2
3
4
5
6
7
8
9
import pandas as pd

df = pd.DataFrame({
'name': ['Alice', 'Bob', 'Cindy'],
'score': [95, 88, 76],
})

df['grade'] = ['A', 'A', 'B']
print(df)
5.7 保存为 CSV
1
2
3
import pandas as pd

passed.to_csv('passed_students.csv', index=False, encoding='utf-8-sig')
5.8 pandas 特别适合什么?
  • 表格清洗;
  • 数据筛选;
  • 分组统计;
  • 缺失值处理;
  • 报表导出;
  • 数据分析原型。

即使你以后不做专业数据分析,掌握它也非常有价值。


六、openpyxl:处理 Excel 文件

CSV 很常见,但在实际办公和业务场景里,真正最常见的往往是 Excel。

Python 里操作 .xlsx 文件时,一个非常常用的库就是 openpyxl

6.1 安装
1
pip install openpyxl
6.2 创建一个 Excel 文件
1
2
3
4
5
6
7
8
9
10
11
12
13
from openpyxl import Workbook

wb = Workbook()
ws = wb.active
ws.title = '成绩表'

ws['A1'] = '姓名'
ws['B1'] = '分数'
ws.append(['Alice', 95])
ws.append(['Bob', 88])
ws.append(['Cindy', 76])

wb.save('students.xlsx')
6.3 读取 Excel 文件
1
2
3
4
5
6
7
from openpyxl import load_workbook

wb = load_workbook('students.xlsx')
ws = wb['成绩表']

for row in ws.iter_rows(min_row=2, values_only=True):
print(row)
6.4 修改单元格
1
2
3
4
5
6
7
8
9
from openpyxl import load_workbook

wb = load_workbook('students.xlsx')
ws = wb['成绩表']
ws['C1'] = '等级'
ws['C2'] = 'A'
ws['C3'] = 'A'
ws['C4'] = 'B'
wb.save('students.xlsx')
6.5 什么时候用 openpyxl,什么时候用 pandas

可以简单理解为:

  • 更偏数据分析和批量处理pandas
  • 更偏 Excel 文件结构和单元格操作openpyxl

它们并不是冲突关系,很多时候会一起用。


七、这些第三方库之间如何配合?

真实任务里,这些库经常不是单独使用,而是组合出现。

例如一个简单的数据采集脚本:

  • requests 请求网页;
  • BeautifulSoup 提取页面信息;
  • pandas 整理成表格;
  • 最后导出为 Excel 或 CSV;
  • 如果要细调 Excel 格式,再用 openpyxl 处理。

这说明一个很重要的事实:

Python 生态的强大,不只是因为单个库很强,而是因为这些库能够自然地拼接成完整工作流。


八、一个综合示例:抓取页面标题并导出表格

下面写一个稍微完整一点的示例,把几个库串起来。

目标:

  • 请求多个网页;
  • 提取页面标题;
  • 保存为 CSV。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import pandas as pd
import requests
from bs4 import BeautifulSoup

urls = [
'https://example.com',
'https://httpbin.org/html',
]

rows = []

for url in urls:
try:
response = requests.get(url, timeout=10)
response.raise_for_status()
soup = BeautifulSoup(response.text, 'html.parser')
title = soup.title.string.strip() if soup.title and soup.title.string else '无标题'
rows.append({
'url': url,
'title': title,
'status_code': response.status_code,
})
except requests.RequestException as e:
rows.append({
'url': url,
'title': f'请求失败: {e}',
'status_code': None,
})

pd.DataFrame(rows).to_csv('page_titles.csv', index=False, encoding='utf-8-sig')

这个脚本虽然不复杂,但已经体现出第三方库协作的典型方式。


九、学习第三方库时的常见误区

9.1 不要只背 API,不理解适用场景

例如:

  • 你不需要一开始记住 pandas 的所有方法;
  • 但你要知道“表格型数据处理”应优先想到它。
9.2 不要一上来就装很多库

学一个库最好的方式通常是:

  • 明确一个小任务;
  • 用这个库完成它;
  • 顺便理解最常用的核心 API。
9.3 不要忽视版本和环境管理

第三方库意味着依赖管理。

所以你至少要逐渐习惯:

  • 使用虚拟环境;
  • 记录依赖版本;
  • 在不同项目中隔离依赖。
9.4 不要把第三方库当黑盒

虽然使用层面可以很快上手,但你仍然要理解:

  • 数据结构是什么;
  • 输入输出是什么;
  • 为什么这样设计;
  • 出错时如何排查。

十、学习建议:这一章优先掌握什么?

10.1 高频优先顺序

如果你是通用 Python 学习者,一个非常实用的优先级通常是:

  1. requests
  2. beautifulsoup4
  3. pandas
  4. openpyxl
10.2 每个库先掌握 20% 的高频能力

例如:

  • requestsgetpostjsonheaderstimeout
  • BeautifulSoupBeautifulSoup(...)findfind_all.text
  • pandasread_csvDataFrame、筛选、导出
  • openpyxl:创建、读取、遍历、写单元格

光是这些核心点,就已经非常有用了。

10.3 多做“真实小项目”最有效

例如:

  • 抓网页信息导出 CSV;
  • 读取 Excel 后做成绩统计;
  • 批量清洗报表;
  • 调接口并转成表格。

第三方库本来就是为真实问题服务的,所以一定要在真实任务中学。


十一、总结

这一篇我们系统梳理了 Python 中几类最常用的第三方库:

  1. requests:用更友好的方式发送 HTTP 请求;
  2. beautifulsoup4:把 HTML 页面解析成结构化对象并提取信息;
  3. pandas:高效处理表格型数据;
  4. openpyxl:读写和修改 Excel 文件。

如果说标准库让你具备了“能做很多事”的基础,那么第三方库则进一步解决了一个现实问题:

如何用更成熟、更高效的方式,完成真实世界里的常见任务?

掌握这一篇之后,你对 Python 生态的理解就从“会写语言本身”,进一步走向了“会用工具解决问题”。

继续往后写时,比较自然的衔接方向通常有两个:

  • Python数据库编程入门:和 SQLite、MySQL 等数据源交互;
  • Python并发编程与异步入门:处理更复杂的任务调度和 I/O 场景。

参考资料