You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python使用BeautifulSoup爬取HTML表格转指定格式字典

BeautifulSoup解析HTML表格生成指定字典实现方案

核心逻辑

  • 定位目标表格标签,遍历表格内所有行标签<tr>
  • 过滤掉仅包含表头单元格<th>的表头行,仅处理存在数据单元格<td>的数据行
  • 逐行提取所有<td>的文本内容,每行第一个单元格文本作为字典键,剩余单元格文本组成的列表作为对应键的值

完整实现代码

from bs4 import BeautifulSoup

# 初始化BeautifulSoup实例,fichier_html为你传入的HTML源码字符串/文件内容
soup = BeautifulSoup(fichier_html, "html.parser")
result = {}

# 遍历目标表格下的所有行
for tr in soup.find("table").find_all("tr"):
    # 提取当前行所有td单元格
    tds = tr.find_all("td")
    # 无td单元格判定为表头行,直接跳过
    if not tds:
        continue
    # 提取每个td的文本,strip()用于去除前后多余空白、换行
    cell_content = [td.text.strip() for td in tds]
    # 按要求组装字典
    result[cell_content[0]] = cell_content[1:]

输出效果

运行代码后result变量的输出和预期格式完全一致:

{
    'Valeur A': ['Valeur B', 'Valeur C', 'Valeur D', 'Valeur E'],
    'Valeur F': ['Valeur G', 'Valeur H', 'Valeur I', 'Valeur J'],
    'Valeur K': ['Valeur L', 'Valeur M', 'Valeur N', 'Valeur O']
}

适配说明

  • 如果待爬取页面存在多个表格,可修改soup.find("table")为带属性筛选的定位逻辑,例如soup.find("table", class_="target-table")匹配指定class的表格
  • 若不需要自动去除单元格文本前后的空白字符,删除.strip()即可
  • 逻辑自动识别跳过表头行,无需手动指定行索引,适配表头行数变动的场景

注意:如果单元格内存在嵌套标签,td.text会自动提取所有嵌套标签内的文本,符合常规爬取需求。

内容的提问来源于stack exchange,提问作者chpe1

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.06 16:15:43