news 2026/3/24 14:34:30

Python 实战:将 HTML 表格一键导出为 Excel(xlsx)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python 实战:将 HTML 表格一键导出为 Excel(xlsx)

在数据采集、网页解析或自动化报表场景中,我们经常会遇到这样一个需求:

从 HTML 页面中提取表格数据,并导出为 Excel 文件

本文将使用BeautifulSoup + Pandas + OpenPyXL,实现一个通用、简单、可复用的工具函数,把 HTML 中的<table>表格直接导出为.xlsx文件。


一、实现思路

整体流程非常清晰:

  1. 使用BeautifulSoup解析 HTML
  2. 查找页面中所有<table>标签
  3. 使用pandas.read_html将表格转为 DataFrame
  4. 使用ExcelWriter将多个表格写入 Excel 的不同 Sheet

二、环境准备

1️⃣ 安装依赖

pipinstallbeautifulsoup4 pandas openpyxl lxml

lxmlpandas.read_html推荐的解析器,性能更好。


三、核心代码实现

1️⃣ HTML 表格导出函数

frombs4importBeautifulSoupimportpandasaspddefhtml_table_to_xlsx(html_content,output_file):""" 将 HTML 中的表格提取并导出为 xlsx 文件。 :param html_content: HTML 文本内容 :param output_file: 导出的 xlsx 文件路径 """# 使用 BeautifulSoup 解析 HTMLsoup=BeautifulSoup(html_content,'html.parser')# 查找 HTML 中的所有表格tables=soup.find_all('table')ifnottables:print("HTML 中没有找到表格!")return# 逐个解析表格并导出到 Excelwithpd.ExcelWriter(output_file,engine='openpyxl')aswriter:fori,tableinenumerate(tables):# 将 HTML table 转为 DataFramedf=pd.read_html(str(table))[0]# 不同表格写入不同的 sheetsheet_name=f"Sheet{i+1}"df.to_excel(writer,index=False,sheet_name=sheet_name)print(f"表格已成功导出到{output_file}")

四、示例演示

1️⃣ 示例 HTML 内容

html_content=""" <html> <head><title>测试表格</title></head> <body> <table border="1"> <tr> <th>姓名</th> <th>年龄</th> <th>城市</th> </tr> <tr> <td>张三</td> <td>28</td> <td>北京</td> </tr> <tr> <td>李四</td> <td>34</td> <td>上海</td> </tr> </table> </body> </html> """

2️⃣ 调用函数导出 Excel

html_table_to_xlsx(html_content,"output.xlsx")

执行后,会在当前目录生成一个output.xlsx文件,内容如下:

姓名年龄城市
张三28北京
李四34上海

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/21 7:32:47

学霸同款8个AI论文网站,本科生搞定毕业论文!

学霸同款8个AI论文网站&#xff0c;本科生搞定毕业论文&#xff01; 论文写作的“学霸同款”神器&#xff0c;你真的不能错过 对于大多数本科生来说&#xff0c;撰写毕业论文是一段既紧张又充满挑战的过程。从选题到开题&#xff0c;再到撰写和降重&#xff0c;每一个环节都需要…

作者头像 李华
网站建设 2026/3/15 6:32:56

‌构建“大模型测试沙箱”:隔离、监控、审计的工程实践指南

‌一、背景&#xff1a;为何传统测试范式在大模型时代失效&#xff1f;‌大模型&#xff08;LLM&#xff09;的非确定性、黑盒性与高资源消耗&#xff0c;彻底颠覆了传统软件测试的底层假设&#xff1a;‌输出不可复现‌&#xff1a;相同输入在不同会话中可能产生语义一致但文本…

作者头像 李华
网站建设 2026/3/15 21:52:01

无线网络仿真:无线网络基础_(4).天线与传播特性

天线与传播特性 天线的基本概念 天线是无线通信系统中最基本的组件之一&#xff0c;用于在空间中传输和接收电磁波。天线的设计和选择对于无线网络的性能至关重要。在本节中&#xff0c;我们将详细探讨天线的基本概念&#xff0c;包括天线的类型、参数以及工作原理。 天线的类型…

作者头像 李华
网站建设 2026/3/15 10:28:18

[安洵杯 2019]吹着贝斯扫二维码

打开附件后发现是一堆碎片一样的二维码&#xff0c;和一个加密的压缩包 按时间排序二维码碎片观察是否有顺序 似乎也不是正常的顺序&#xff08;看二维码三个角的顺序&#xff09; 用16进制查看器随便查看一个碎片看看有没有排列提示 发现末端有数字标记 估计这个就是排序了…

作者头像 李华
网站建设 2026/3/15 14:31:13

存储器系统中的非对齐传输

存储器系统中的非对齐传输 存储器系统中的非对齐传输是计算机体系结构和底层编程中的一个概念。 核心定义 非对齐传输指的是CPU或DMA控制器尝试访问一个未在自然边界上对齐的内存地址。 自然边界通常是由所访问数据的大小决定的&#xff1a; 访问1字节&#xff08;8位&#xff…

作者头像 李华
网站建设 2026/3/22 19:27:29

【无人机追踪】基于Dubin和候选集的无人机UAV集群协同攻击目标的Matlab仿真程序,围绕无人机的目标搜索、冲突避免、联盟组建和任务执行展开考虑时间与能耗

✅作者简介&#xff1a;热爱数据处理、建模、算法设计的Matlab仿真开发者。&#x1f34e;更多Matlab代码及仿真咨询内容点击 &#x1f517;&#xff1a;Matlab科研工作室&#x1f34a;个人信条&#xff1a;格物致知,完整Matlab代码获取及仿真咨询内容私信。&#x1f447; 关注我…

作者头像 李华