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

SwiftSoup能否正确解析含特定无标签文本的目标HTML页面?

SwiftSoup完全可以实现你的解析需求

实现思路

通过精准的选择器筛选出符合要求的<ol>区块,再提取目标文本:

  • 只保留第一个<li>内直接包含src含pixelshim.gif的<img>标签的<ol>元素
  • 提取该<ol>下第二个<li>的文本内容,清理多余空白后即为需要的河段名称

代码示例

import SwiftSoup

// 假设已获取网页HTML内容存入htmlContent变量
do {
    let doc = try SwiftSoup.parse(htmlContent)
    let allOlBlocks = try doc.select("ol")
    
    for ol in allOlBlocks {
        // 检查第一个li是否有直接子元素是指定的img
        let targetImg = try ol.select("li:first-child > img[src*=pixelshim.gif]")
        guard !targetImg.isEmpty else { continue }
        
        // 提取第二个li的文本并清理空白
        let riverSectionText = try ol.select("li:nth-child(2)").text()
            .trimmingCharacters(in: .whitespacesAndNewlines)
        
        if !riverSectionText.isEmpty {
            print(riverSectionText)
            // 此处可将结果存入数组或进行后续处理
        }
    }
} catch {
    print("解析出错:\(error.localizedDescription)")
}

关键选择器说明

  • li:first-child > img[src*=pixelshim.gif]:>确保<img>是第一个<li>的直接子元素(排除被<a>包裹的情况),[src*=pixelshim.gif]匹配src包含目标文件名的图片
  • li:nth-child(2):精准定位到<ol>下的第二个<li>元素
  • trimmingCharacters:去除文本前后的空格、换行等无效字符,保证结果整洁

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 13:42:16