我使用此代码获取页面信息,但是现在站点已更改,我的应用程序返回空错误。
document.styleSheets
这是我的html:
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(page);
var query = doc.DocumentNode
.SelectNodes("//table[@class='table table-striped table-hover']/tr")
.Select(r => {
return new DelegationLink()
{
Row = r.SelectSingleNode(".//td").InnerText,
Category = r.SelectSingleNode(".//td[2]").InnerText
};
}).ToList();
我在哪里错了?
答案 0 :(得分:3)
表行不是表的直接后代,但是它们嵌套在其他标记中,这就是代码返回null的原因。另外,您还想跳过标题,而只刮擦表的正文。
var query = doc.DocumentNode
.SelectNodes("//table[@class='table table-striped table-hover']/tbody/tr")
.Select(r =>
{
return new DelegationLink()
{
Row = r.InnerText,
Category = r.SelectSingleNode(".//td[2]").InnerText
};
}
).ToList();