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

Rust使用scraper提取表格中span元素的正确选择器求助

解决CSS选择器定位问题及代码修正

你的选择器存在两个核心问题:

  • 同时使用:nth-child(3)和:nth-child(1)逻辑矛盾,同一个元素不可能既是父元素的第1个子元素又是第3个
  • 没有定位到目标<span>元素,原选择器指向的是tr的子元素,而非嵌套在td里的span

以下是正确的CSS选择器及修正后的代码:

精准定位的选择器(推荐)

如果目标span固定在tr的第三个td中,使用这个选择器:

tr[id='12345678'] td:nth-child(3) span

简化选择器(如果tr内只有这一个span)

tr[id='12345678'] span

修正后的Rust代码

use scraper::{Selector, Html};

let parsed_html = Html::parse_document("<tr id='12345678'><td>...</td> <td>...</td> <td><span>0.45</span></td> </tr>");

// 使用精准选择器
let selector = Selector::parse("tr[id='12345678'] td:nth-child(3) span").unwrap();

// 获取span元素并提取文本
if let Some(span_element) = parsed_html.select(&selector).next() {
    let value = span_element.text().collect::<String>();
    println!("提取到的数值:{}", value); // 输出:提取到的数值:0.45
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 22:57:37