📜  Python|将 HTML 表格转换为 excel(1)

📅  最后修改于: 2023-12-03 15:19:19.749000             🧑  作者: Mango

Python|将 HTML 表格转换为 Excel

简介

在日常的开发工作中,我们常常需要将 HTML 表格中的数据导出到 Excel 文件中进行进一步的处理和分析。Python 提供了丰富的库来帮助我们实现这个任务,本文将介绍如何使用 Python 将 HTML 表格转换为 Excel 文件。

步骤概述
  1. 解析 HTML 表格
  2. 创建 Excel 文件
  3. 将数据写入 Excel 文件
解析 HTML 表格

为了将 HTML 表格转换为 Excel 文件,我们需要先解析 HTML 表格并提取其中的数据。Python 中有许多库可以用于解析 HTML,比如 BeautifulSoup、lxml 等。这里我们以 BeautifulSoup 库为例,它是一个功能强大、易于使用的 HTML 解析库。

from bs4 import BeautifulSoup

# 解析 HTML 表格
html = """
<table>
  <tr>
    <th>姓名</th>
    <th>年龄</th>
    <th>性别</th>
  </tr>
  <tr>
    <td>小明</td>
    <td>18</td>
    <td>男</td>
  </tr>
  <tr>
    <td>小红</td>
    <td>20</td>
    <td>女</td>
  </tr>
  <tr>
    <td>小李</td>
    <td>22</td>
    <td>男</td>
  </tr>
</table>
"""

soup = BeautifulSoup(html, 'html.parser')
table = soup.find('table')

在上述代码中,我们使用 BeautifulSoup 解析了一个包含表格数据的 HTML 字符串。通过调用 find 方法找到了 table 标签,表示表格元素。

创建 Excel 文件

Python 有几个库可以用于创建和操作 Excel 文件,比如 openpyxl、pandas 等。这里我们以 openpyxl 为例,它是一个功能丰富的 Excel 处理库。

from openpyxl import Workbook

# 创建 Excel 文件
wb = Workbook()
ws = wb.active

在上述代码中,我们使用 openpyxl 创建了一个名为 wb 的 Workbook 对象,并通过 active 属性获取了默认的工作表 ws

将数据写入 Excel 文件

接下来,我们需要将从 HTML 表格中解析出来的数据写入到 Excel 文件中。

# 将数据写入 Excel 文件
rows = table.find_all('tr')

for row in rows:
    cells = row.find_all('td')
    data = [cell.text for cell in cells]
    ws.append(data)

# 保存 Excel 文件
wb.save('output.xlsx')

在上述代码中,我们遍历了 HTML 表格的每一行,并通过 find_all 方法找到了每个单元格的数据。然后,我们将每行数据写入到 Excel 工作表中的新行中,最后将 Excel 文件保存到磁盘中。

总结

通过使用 Python 的 BeautifulSoup 和 openpyxl 等库,我们可以轻松地将 HTML 表格转换为 Excel 文件。上述代码片段提供了实现此功能的基本步骤,您可以根据具体的需求进行修改和扩展。

请注意,上述代码只是一个示例,实际应用中可能需要根据 HTML 表格的结构和样式进行适当的调整。