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

如何获取带有variable-active类的td标签的同级兄弟td内容?

问题解决:获取带有variable-active类的TD标签的同级TD内容

原始HTML片段

<tr>
    <td data-bind="text:name, css: isActive() ? 'variable-active': 'variable-inactive'" class="variable-active">Vehicle</td>
    <td data-bind="text:value">Ford</td>
</tr>

<tr>
    <td data-bind="text:name, css: isActive() ? 'variable-active': 'variable-inactive'" class="variable-inactive">Model</td>
    <td data-bind="text:value">Focus</td>
</tr>

需求说明

需要获取所有带有variable-active类的<td>标签,并获取其下一个同级<td>标签的内容,预期输出:

"Vehicle - Ford"

原代码问题

原代码中tag.findNextSibling(class_="variable-active")的逻辑错误:该方法是寻找当前标签的同级兄弟中带有variable-active类的标签,但我们需要的是带有variable-active类的TD标签的下一个同级TD,而非同级中带该类的标签。

正确实现代码

from bs4 import BeautifulSoup

with open("html.html", "r") as f:
    doc = BeautifulSoup(f, "html.parser")

# 定位所有带有variable-active类的td标签
active_tds = doc.find_all("td", class_="variable-active")

for td in active_tds:
    # 获取当前td的下一个同级td标签
    next_td = td.find_next_sibling("td")
    # 拼接并输出结果
    if next_td:
        result = f'"{td.get_text(strip=True)} - {next_td.get_text(strip=True)}"'
        print(result)

代码解释

  • doc.find_all("td", class_="variable-active"):直接定位所有目标TD标签,无需先筛选TR再查找,逻辑更简洁。
  • td.find_next_sibling("td"):针对每个目标TD,精准获取其下一个同级TD标签,这才是我们需要的内容载体。
  • get_text(strip=True):提取标签文本并自动去除首尾空白,避免多余换行或空格影响输出格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 03:45:37