如何使用HtmlAgilityPack抓取网页中与图片同组的战队名称文本
HtmlAgilityPack赛事表格战队名抓取解决方案
1. 精准XPath路径定位(仅匹配表格内战队元素)
表格内的战队名称和顶部标题区战队名的父级容器类名不同,你可以使用以下XPath实现精准匹配,返回的节点顺序和表格对阵顺序完全一致,不会出现颠倒问题:
//div[contains(@class,'match__results-team')]//span[@class='match__name']
2. 调整后的抓取代码示例
var tableTeamNames = doc.DocumentNode.SelectNodes("//div[contains(@class,'match__results-team')]//span[@class='match__name']"); if (tableTeamNames != null && tableTeamNames.Count >= 2) { foreach (var node in tableTeamNames) { if (!string.IsNullOrEmpty(node.InnerText)) { string teamName = node.InnerText; // 保留你原有处理前缀的逻辑,也可替换为Trim()清理前后空白字符 teamsList.Add(teamName.Substring(1)); } } } else { Console.WriteLine("未在表格内查询到对阵战队信息"); }
3. 后续适配方法
如果页面结构发生微调,你可以直接用浏览器F12开发者工具的元素拾取功能,点击表格内的战队名称,复制对应元素的XPath后替换上述代码中的路径即可,无需修改整体逻辑。
内容的提问来源于stack exchange,提问作者Herbie
相关产品推荐
相关产品推荐

