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上海

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1190794.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python毕设项目推荐-基于Python的网络小说分析系统设计与实现【附源码+文档,调试定制服务】

java毕业设计-基于springboot的(源码LW部署文档全bao远程调试代码讲解等) 博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、…

2026必备!10个AI论文工具,专科生轻松搞定论文写作!

2026必备&#xff01;10个AI论文工具&#xff0c;专科生轻松搞定论文写作&#xff01; AI 工具助力论文写作&#xff0c;专科生也能轻松应对 随着人工智能技术的不断进步&#xff0c;越来越多的 AI 工具被引入到学术写作领域&#xff0c;帮助学生和研究人员提高效率、降低重复率…

REST 不仅仅是 CRUD:从 Roy Fielding 六大原则重识 API 设计的“灵魂”

引言&#xff1a;当“RESTful”沦为标签&#xff0c;我们失去了什么&#xff1f;在当今的软件工程实践中&#xff0c;“RESTful API”几乎成了现代 Web 接口开发的默认代名词。然而&#xff0c;一个令人不安的事实是&#xff1a;大多数自称“RESTful”的接口&#xff0c;实际上…

【课程设计/毕业设计】基于大数据+django+mysql的学习资源推送系统的设计与实现基于Django+大数据的学习资源推送系统【附源码、数据库、万字文档】

java毕业设计-基于springboot的(源码LW部署文档全bao远程调试代码讲解等) 博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、…

数字化做完却没有价值?问题可能不在技术,而在架构

从安托&#xff08;ATOZ&#xff09;30余年实践&#xff0c;看架构驱动与知识资本化的真正含义&#xff0c;以下内容源自《制造业数字化转型架构设计&#xff08;APA&#xff08;ATOZ Process Approach&#xff09;&#xff09;白皮书》在复杂制造业中&#xff0c;数字化转型失…

【滤波跟踪】基于拓展卡尔曼滤波的移动机器人 2D 定位系统融合里程计和 GPS数据实时估计机器人的位姿附matlab代码

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

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

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

【毕业设计】基于Django+大数据的学习资源推送系统(源码+文档+远程调试,全bao定制等)

java毕业设计-基于springboot的(源码LW部署文档全bao远程调试代码讲解等) 博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、…

大数据毕设项目推荐-基于Django+大数据的学习资源推送系统课程视频、电子书籍【附源码+文档,调试定制服务】

java毕业设计-基于springboot的(源码LW部署文档全bao远程调试代码讲解等) 博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、…

优雅的分组贪心|线段树二分

许多优化 都是边遍历 边更新维护可以借助各种数据结构(轮子bush来减少循环次数 即时间复杂度 更快的拿到retlc3480维护每个数字对应的最小、次小冲突值&#xff0c;计算无冲突子数组的最大数量&#xff0c;最终结合额外可扩展的子数组数量得到结果。class Solution { public:lo…

【课程设计/毕业设计】基于Django的蔬菜销售分析与预测可视化系统基于django的蔬菜销售分析与预测可视化系统【附源码、数据库、万字文档】

java毕业设计-基于springboot的(源码LW部署文档全bao远程调试代码讲解等) 博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、…

大数据毕设项目:基于Django+大数据的学习资源推送系统(源码+文档,讲解、调试运行,定制等)

java毕业设计-基于springboot的(源码LW部署文档全bao远程调试代码讲解等) 博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、…

【毕业设计】基于django的蔬菜销售分析与预测可视化系统(源码+文档+远程调试,全bao定制等)

java毕业设计-基于springboot的(源码LW部署文档全bao远程调试代码讲解等) 博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、…

数据即服务在大数据领域的创新应用与实践

数据即服务&#xff08;DaaS&#xff09;&#xff1a;大数据时代的服务化革命与实践指南 一、引言&#xff1a;为什么说DaaS是大数据落地的关键&#xff1f; 1.1 痛点&#xff1a;你是否也在经历“数据困境”&#xff1f; 作为大数据从业者&#xff0c;你可能遇到过这样的场景&…

C# 判断 AVIF 图片是否是 HDR、动图的方法

需要安装包 SixLabors.ImageSharp 和 HeyRed.ImageSharp.Heif。 读取 AVIF 图片: DecoderOptions SupportedFormats = new() {Configuration = new Configuration(new AvifConfigurationModule()), };var file = File…

小白必看!AR开发从入门到实战全攻略

把虚拟内容与真实世界精准融合的 AR&#xff08;增强现实&#xff09;技术&#xff0c;如今已在广告营销、教育科普、工业辅助等诸多领域大展身手。《精灵宝可梦 GO》的爆火让大众见识到AR的魅力&#xff0c;AR导航的普及则让这项技术走进了日常生活&#xff0c;种种迹象都让AR…

jetson orin(jetpack6.2)安装gazebo和gazebo_ros_pkgs

目前 Debian/Ubuntu 官方仅提供了基于 Amd64 架构的 Gazebo 软件包&#xff0c;尚未发布 Arm64 版本。因此&#xff0c;在 Ubuntu 22.04 系统中无法通过官方源直接获取适用于 Arm64 架构的 Gazebo 安装包。 解决办法&#xff1a; 1.安装gazebo &#xff08;1&#xff09;换源安…

大数据BI工具的分类预测模型

大数据BI工具的分类预测模型&#xff1a;用数据“算”出未来的魔法指南 关键词&#xff1a;大数据BI工具、分类预测模型、数据挖掘、业务决策、机器学习算法 摘要&#xff1a;在企业数字化转型的浪潮中&#xff0c;“用数据说话”早已不是口号——而大数据BI工具中的“分类预测…

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

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