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
相关产品推荐
相关产品推荐

