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

Python使用BeautifulSoup提取多标签指定内容的方法

问题修复方案

直接调整遍历提取逻辑,跳过无有效数据的表头行,定向匹配你需要的字段即可,不需要逐标签硬写定位规则,修改后代码如下:

from bs4 import BeautifulSoup

res = '''替换为你的HTML源码内容'''
soup = BeautifulSoup(res, 'html.parser')

for tr in soup.find_all('tr'):
    # 定位医院名称标签,找不到则说明是表头行,直接跳过
    name_tag = tr.find('h3')
    if not name_tag:
        continue
    # 提取医院名称,自动去除前后空格、嵌套标签
    print(name_tag.get_text(strip=True))
    # 遍历当前行所有列表项
    for li in tr.find_all('li'):
        li_content = li.get_text(strip=True)
        # 只保留需要的三个字段,过滤官网链接等无关内容
        if li_content.startswith(('address:', 'phonenumber:', 'Email:')):
            print(li_content)

关键逻辑说明

  • 之前输出None是因为第一行是表头,本身不存在h3标签,加非空判断跳过这类行即可消除无效输出
  • 用get_text(strip=True)提取文本,不用逐层查找span、strong等嵌套子标签,直接拿到干净的纯文本内容
  • 给li内容加前缀匹配规则,精准筛选目标字段,自动排除页面里的图片、地图iframe、官网链接等无关元素

运行代码后输出结果和你的预期完全一致:

ABC HOSPITAL
address: 1345 Golden View , LA
phonenumber: 3923 4260
Email: abc@hospital.com

如果后续表格内有多家医院数据,这套逻辑也可以直接批量提取,不需要额外调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 09:36:17