c# - 无法使用 XPath 获取 div 标签的内容
问题描述
我正在尝试获取<div>
标签的内容。使用 Safari 和 Firefox,我得到了我想要获取的数据的 xpath。
div标签是:
<div class="RoundRobinTable-cell RoundRobinTable-cell--center">16 - 4</div>
和 xpath(根据 Safari 和 Firefox)
//*[@id=\"roundrobin\"]/div/div/div[1]/div[2]/div[1]/div/div[2]/div[2]/div[1]/div[2]/div
我的目标是16 - 4
从那个 div 标签中获取。但是,当我尝试在 Safari 中使用控制台验证 xpath 时,它给了我整个 div 标签而不是 16 - 4。以下是我的 C# 代码(不起作用)。
var url = "https://worldcup.playoverwatch.com/en-us/";
HtmlWeb web = new HtmlWeb();
var htmldoc = web.Load(url);
string xpath = "//*[@id=\"roundrobin\"]/div/div/div[1]/div[2]/div[1]/div/div[2]/div[2]/div[1]/div[2]/div";
var node = htmldoc.DocumentNode.SelectSingleNode(xpath);
string innerResult = node.InnerHtml;
Console.WriteLine(innerResult);
- 我怎样才能得到正确的字符串?
- 有没有办法让这个更普遍?从链接可以看出,在国家旁边,有2个部分,GR和MR。假设我的应用中有一个字符串是国家/地区名称(与网站中的名称完全匹配)。如何获取该国家/地区字符串的 GR 和 MR 值?不写特定的 xpath 和/或东西?
解决方案
而不是使用绝对路径。试试下面的相对 xpath :
//div[@class='RoundRobinTable-cell RoundRobinTable-cell--center']
推荐阅读
- python - 如何在 scrapy 中正确使用 XPATH?
- angular - Angular 9 从 Observable 返回 Observable
- ms-access - 尝试在访问文本框中显示总和结果时出错
- google-cloud-platform - GCP 秘密版本在变得不可见之前会保持销毁状态多长时间?
- java - 如果应用程序当前已打开,则显示警报而不是预定通知
- ios - 缺少 Info.plist 值。Info.plist 键“CFBundleIconName”的值
- python - Pandas Dataframe:将具有相同列值的多行移动到新的特定行中
- javascript - 我正在使用 nightwatch 框架进行测试,我得到这个范围错误。遇到错误执行只是停止而没有任何报告
- reactjs - 想要为整个 REACT 应用程序使用单个 Web 套接字,但在每次导航时都会创建套接字
- python - 在迭代第一个时合并两个“for”循环