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

如何用BeautifulSoup提取表格中特定医院的分诊等待时间?

提取特定医院的分诊等待时间解决方案

没问题,我来帮你调整代码,只提取Sir Charles Gairdner Hospital的分诊等待时间。你的现有代码已经能获取到表格的所有行,只需要添加一个过滤逻辑,定位到目标医院的行,再提取对应的等待时间即可。

修改后的完整代码

import requests
from bs4 import BeautifulSoup

URL = 'https://www.health.wa.gov.au/emergencyactivity/EDdata/edsv/'
headers = {
    "User-Agent": 'Mozilla/5.0 (X11; Linux x86_64; rv:76.0) Gecko/20100101 Firefox/76.0'
}
page = requests.get(URL, headers=headers)
soup = BeautifulSoup(page.content, 'html.parser')
table_rows = soup.find_all('tr')

for tr in table_rows:
    td = tr.find_all('td')
    # 去除每个单元格文本的多余空格和换行,避免匹配失误
    row = [i.text.strip() for i in td]
    # 跳过空行(比如表头分隔行或无数据的行)
    if not row:
        continue
    # 匹配目标医院名称(确保和表格里的名称完全一致)
    if row[0] == 'Sir Charles Gairdner Hospital':
        # 根据表格结构,分诊等待时间通常在第3列(索引为2,因为从0开始计数)
        # 如果实际列位置不对,先运行原代码看row的输出,调整索引即可
        wait_time = row[2]
        print(f"Sir Charles Gairdner Hospital 分诊等待时间: {wait_time}")

关键说明

  1. 文本清洗:用strip()处理每个单元格的文本,去掉换行、空格等多余字符,避免因为格式问题导致医院名称匹配失败。
  2. 空行过滤:判断row是否为空,跳过表格里的空行或表头分隔行,防止索引错误。
  3. 列索引确认:如果运行后没得到正确的等待时间,先临时添加print(row)代码,看看表格的列结构,再调整row[2]的索引值,找到对应分诊等待时间的列位置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 15:33:12