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

如何使用Beautiful Soup抓取HTML表格所有行 解决仅输出首行问题

问题根因

你的代码存在两个问题:

  1. 循环对象为table标签,当前页面仅存在1个符合id匹配规则的表格,因此外层循环仅执行1次。tr.find_all('td')会把表格内全部12个<td>标签存入同一个列表,你仅取前6个元素输出,自然只能得到第一行数据。
  2. 循环变量命名为tr但实际迭代的是table对象,属于命名错误,容易干扰逻辑判断。

修正后代码

# 定位目标表格
target_table = soup.find('table', id='rfq-display-line-items-list')
# 遍历表格下所有行标签
for tr in target_table.find_all('tr'):
    tds = tr.find_all('td')
    # 跳过无td元素的表头行,需要输出表头可删除该判断
    if not tds:
        continue
    # 格式化输出,第一列预留10字符宽度实现左对齐
    print(f"{tds[0].text:<10} {tds[1].text} {tds[2].text} {tds[3].text} {tds[4].text} {tds[5].text}")

运行上述代码即可输出你预期的对齐后的完整两行表格内容。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 08:48:01