如何用AngleSharp提取HTML中work_genre类下span的title属性值?
用AngleSharp提取span标签title属性的修改方案
假设你原代码是类似这样提取a标签文本的:
var document = await context.OpenAsync(req => req.Content(htmlContent)); var genres = document.QuerySelectorAll(".work_genre a") .Select(a => a.TextContent.Trim()) .ToList();
要提取span的title属性,直接调整选择逻辑即可,下面给两种可行的修改方式:
方式一:直接定位到span元素
把选择器改成.work_genre a span,直接获取每个span的title属性:
var document = await context.OpenAsync(req => req.Content(htmlContent)); var genreTitles = document.QuerySelectorAll(".work_genre a span") .Select(span => span.GetAttribute("title")?.Trim()) .Where(title => !string.IsNullOrEmpty(title)) .ToList();
方式二:先取a元素再找子span
如果需要保留对a元素的操作,也可以先选中a标签,再定位它下面的span子元素:
var document = await context.OpenAsync(req => req.Content(htmlContent)); var genreTitles = document.QuerySelectorAll(".work_genre a") .Select(a => a.QuerySelector("span")?.GetAttribute("title")?.Trim()) .Where(title => !string.IsNullOrEmpty(title)) .ToList();
补充说明
- AngleSharp里可以用
span.GetAttribute("title")或者span.Title两种方式获取title属性,效果完全一致。 - 加上
Where过滤是为了剔除null或空值,如果你确定所有span都有合法的title属性,可以去掉这一步。
内容的提问来源于stack exchange,提问作者K14M
相关产品推荐
相关产品推荐

