我正试图从Here
获取名为spanStart
Chrome为我提供了此xPath://*[@id="guide-pages"]/div[2]/div[1]/div/div[1]/div/div/div[2]/div/div[3]/div[2]/div[1]/h2
但是HtmlAgilityPack在我尝试逐个删除之后返回null;这有效://*[@id="guide-pages"]/div[2]/div[1]
,但不是其他人。
我的完整代码:
HtmlDocument doc = new HtmlDocument();
var text = await ReadUrl();
doc.LoadHtml(text);
Console.WriteLine($"Getting Data From: {doc.DocumentNode.SelectSingleNode("//head/title").InnerText}"); //Works fine
Console.WriteLine(doc.DocumentNode.SelectSingleNode("//*[@id='guide-pages']/div[2]/div[1]/div/div[1]/div/div/div[2]/div/div[3]/div[2]/div[1]/h2") == null);
输出:
Getting Data From: Miss Fortune Build Guide : [7.11] KOREAN MF Build - Destroy the Carry! [Added Support] :: League of Legends Strategy Builds
True
答案 0 :(得分:1)
请勿使用Chrome中的xpath。请改用HtmlAgilityPack中的LINQ。例如
console.log(ThinObj);
// Causes an error and therefore complies with the specification for ES2015 classes
var t = new ThinObj('thing'); // Fails because var is `undefined` before initialization
var ThinObj = (function ThinObj() {
function ThinObj(thing) {
this.thing = thing;
}
return ThinObj;
}());
将为您提供1个html节点下的所有.Descendants("div")
。每个html节点都有元数据,如id,attributes(classes ...),你可以从那里查询你想要的div。
这是检查div
是否有类的一种方便方法。
HtmlNode