使用Rust的scraper库获取img的src属性时遇attr方法未找到问题
问题解决:scraper库提取img标签src属性报错
错误原因
你调用el.attr()时缺少属性名称参数,ElementRef的attr方法需要传入一个&str类型的属性名(比如"src"),用来指定要提取的目标属性。
修正后的代码
use scraper::{Html, Selector}; fn main() { // 假设next_document是已解析完成的Html实例 let image_selector = Selector::parse("#photoInner > ul > li:nth-child(2) > div > img").unwrap(); // 提取src属性,自动过滤无属性的情况 let inner_image: String = next_document .select(&image_selector) .flat_map(|el| el.attr("src")) // 传入"src"作为要提取的属性名 .collect(); // 若匹配多个元素,会拼接所有src值;如需单个元素可调整逻辑 println!("{:?}", inner_image); }
补充优化
如果只需要第一个匹配元素的src值,可调整逻辑避免拼接:
let inner_image = next_document .select(&image_selector) .next() .and_then(|el| el.attr("src")) .unwrap_or(""); // 未找到元素或属性时返回空字符串
内容的提问来源于stack exchange,提问作者Marcel Kopera
相关产品推荐
相关产品推荐

