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

使用JSoup的if else语句判断标签是否存在的技术问题

解决方案:处理含/不含address标签的div元素

嘿,我来帮你搞定这个需求!针对你提到的25个secondary-attributes类的div元素,我们可以分情况处理——优先提取address标签的文本,不存在时就用neighbor-str-list的span文本并提示“address不存在”。下面分两种常用场景给你代码示例:

Python(BeautifulSoup)方案

如果你是用Python做网页解析,用BeautifulSoup可以轻松实现:

from bs4 import BeautifulSoup

# 假设你的网页内容存在html变量中(或者从文件/请求获取)
soup = BeautifulSoup(html, 'html.parser')

# 获取所有目标div
divs = soup.find_all('div', class_='secondary-attributes')

for div in divs:
    # 先尝试找address标签
    address_tag = div.find('address')
    if address_tag:
        # 提取并处理文本(去除多余空格)
        address_text = address_tag.get_text(strip=True)
        print(address_text)
    else:
        # 提取span标签的文本
        span_text = div.find('span', class_='neighbor-str-list').get_text(strip=True)
        print(f"address不存在,替代文本:{span_text}")

JavaScript(浏览器端/Node.js)方案

如果是在浏览器环境或者用Node.js的jsdom库处理,代码逻辑类似:

// 获取所有目标div元素
const divs = document.querySelectorAll('.secondary-attributes');

divs.forEach(div => {
    const addressEl = div.querySelector('address');
    if (addressEl) {
        // 提取文本并去除多余空格
        const addressText = addressEl.textContent.trim();
        console.log(addressText);
    } else {
        const spanEl = div.querySelector('.neighbor-str-list');
        const spanText = spanEl.textContent.trim();
        console.log(`address不存在,替代文本:${spanText}`);
    }
});

小提示

  • 两种方案都加入了strip()/trim()来清理文本中的多余空格和换行,让输出更整洁;
  • 因为你提到neighbor-str-list的span始终存在,所以代码里没有额外做空判断,如果你担心极端情况,可以给span的查询加个存在性检查哦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 03:37:32