如何用Rust的scraper库获取a标签的href属性值?
获取scraper库中a标签的href属性值
你当前的代码仅定义了Selector,还需要完成查找目标元素和提取属性值这两个关键步骤。scraper库的ElementRef类型提供了attr方法,可直接读取标签的属性值,具体实现如下:
完整代码示例
use scraper::{Html, Selector}; fn main() { // 替换为实际获取到的网页HTML内容 let html = r#"<html><body><a class="s-topbar--logo" href="https://example.com">网站Logo</a></body></html>"#; // 解析HTML为Document对象 let document = Html::parse_document(html); // 初始化你定义的Selector let selector = Selector::parse("a.s-topbar--logo").unwrap(); // 遍历所有匹配的a标签,提取href属性 for element in document.select(&selector) { // attr方法返回Option<&str>,处理可能的空属性情况 match element.attr("href") { Some(href) => println!("提取到的href值: {}", href), None => println!("当前a标签未设置href属性"), } } // 若仅需第一个匹配元素的href,可简化为: if let Some(first_href) = document.select(&selector).next().and_then(|e| e.attr("href")) { println!("第一个匹配的href值: {}", first_href); } }
核心说明
element.attr("href")返回Option<&str>,因为部分a标签可能未定义href属性,需通过match或if let处理空值场景document.select(&selector)会返回所有匹配的元素迭代器,按需选择遍历或取单个元素即可
内容的提问来源于stack exchange,提问作者user22092733
相关产品推荐
相关产品推荐

