Python实现将HTML表格一键导出为Excel(xlsx)的实战指南

Written by

in

文章目录
  • 整体流程非常清晰: 使用 BeautifulSoup 解析 HTML 查找页面中所有 <table> 标签 使用 pandas.read_html 将表格转为 DataFrame 使用 ExcelWriter 将多个表格写入 Excel 的不同 Sheet
  • 安装依赖 pip install beautifulsoup4 pandas openpyxl lxml lxml 是 pandas.read_html 推荐的解析器,性能更好。
  • HTML 表格导出函数 from bs4 import BeautifulSoup import pandas as pd def html_table_to_xlsx(html_content, output_file): “”” 将 HTML 中的表格提取并导出为 xlsx 文件。 :param html_content: HTML 文本内容 :param output_file: 导出的 xlsx 文件路径 “”” # 使用 BeautifulSoup 解析 HTML soup = BeautifulSoup(html_content, ‘html.parser’) # 查找 HTML 中的所有表格 tables = soup.find_all(‘table’) if not tables: print(“HTML 中没有找到表格!”) return # 逐个解析表格并导出到 Excel with pd.ExcelWriter(output_file, engine=’openpyxl’) as writer: for i, table in enumerate(tables): # 将 HTML table 转为 DataFrame df = pd.read_html(str(table))[0] # 不同表格写入不同的 sheet sheet_name = f”Sheet{i + 1}” df.to_excel(writer, index=False, sheet_name=sheet_name) print(f”表格已成功导出到 {output_file}”)
  • 目录
    • 一、实现思路
    • 二、环境准备
    • 三、核心代码实现
    • 四、示例演示
      • 示例 HTML 内容
      • 调用函数导出 Excel

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

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

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

    整体流程非常清晰:

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

    安装依赖

    pip install beautifulsoup4 pandas openpyxl lxml
    

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

    HTML 表格导出函数

    from bs4 import BeautifulSoup
    import pandas as pd
    
    
    def html_table_to_xlsx(html_content, output_file):
        """
        将 HTML 中的表格提取并导出为 xlsx 文件。
    
        :param html_content: HTML 文本内容
        :param output_file: 导出的 xlsx 文件路径
        """
        # 使用 BeautifulSoup 解析 HTML
        soup = BeautifulSoup(html_content, 'html.parser')
    
        # 查找 HTML 中的所有表格
        tables = soup.find_all('table')
        if not tables:
            print("HTML 中没有找到表格!")
            return
    
        # 逐个解析表格并导出到 Excel
        with pd.ExcelWriter(output_file, engine='openpyxl') as writer:
            for i, table in enumerate(tables):
                # 将 HTML table 转为 DataFrame
                df = pd.read_html(str(table))[0]
    
                # 不同表格写入不同的 sheet
                sheet_name = f"Sheet{i + 1}"
                df.to_excel(writer, index=False, sheet_name=sheet_name)
    
        print(f"表格已成功导出到 {output_file}")
    

    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>
    """
    

    html_table_to_xlsx(html_content, "output.xlsx")
    

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

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

    到此这篇关于Python实现将HTML表格一键导出为Excel(xlsx)的实战指南的文章就介绍到这了,更多相关Python HTML表格导出为Excel内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客!

    您可能感兴趣的文章:

    • Python实现将HTML表格一键导出为Excel
    • Python借助Spire.XLS高效实现Excel到HTML的转换
    • 利用Python实现Excel表格转换为HTML格式
    • 利用Python将Excel快速转换成HTML的代码实现
    • Python实现Excel表格转HTML
    • python pandas实现excel转为html格式的方法
    • python抓取某汽车网数据解析html存入excel示例

    站内搜索