HtmlAgilityPack - Select 来自 Table 的 td 属性
HtmlAgilityPack - Select td Attribute from Table
我正试图从这个 site 中获取作者姓名 .. 该网站仅显示 25 行的结果 .. 每行包含不同的信息,如作者姓名、标题...等
我尝试了很多 select 每个 tr 的作者姓名的解决方案 .. 但未能检索到作者姓名 .. 这是我的代码,如果有人可以帮助我知道我错过了什么!
var documentx = new HtmlWeb().Load(post.ExtLink);
var div = documentx.DocumentNode.SelectNodes("//*//table[2]//tr");
if (div != null)
{
foreach (var item in div)
{
Book model = new Book();
var author= item.SelectSingleNode("//td[1]//a").InnerText.ToString();
//var title = item.SelectNodes("//td").Skip(2).FirstOrDefault().InnerText;
//var img = item.Descendants("img").Select(a1 => a1.GetAttributeValue("src", null)).FirstOrDefault();
model.Book_Description = author;
}
}
我想获取每一行的作者姓名这张照片准确解释了我想要的内容:
我尝试调试代码.. 它在 foreach 之前运行良好,它显示它有 25 行结果,然后当 foreach 开始执行时它没有显示预期的结果或值。
尝试使用:
var div = documentx.DocumentNode.SelectNodes("//*//table[3]//tr");
而不是:
var div = documentx.DocumentNode.SelectNodes("//*//table[2]//tr");
并像这样使用它:
var author = item.ChildNodes[0].InnerText;
var series = item.ChildNodes[1].InnerText;
var title = item.ChildNodes[2].InnerText;
我正试图从这个 site 中获取作者姓名 .. 该网站仅显示 25 行的结果 .. 每行包含不同的信息,如作者姓名、标题...等
我尝试了很多 select 每个 tr 的作者姓名的解决方案 .. 但未能检索到作者姓名 .. 这是我的代码,如果有人可以帮助我知道我错过了什么!
var documentx = new HtmlWeb().Load(post.ExtLink);
var div = documentx.DocumentNode.SelectNodes("//*//table[2]//tr");
if (div != null)
{
foreach (var item in div)
{
Book model = new Book();
var author= item.SelectSingleNode("//td[1]//a").InnerText.ToString();
//var title = item.SelectNodes("//td").Skip(2).FirstOrDefault().InnerText;
//var img = item.Descendants("img").Select(a1 => a1.GetAttributeValue("src", null)).FirstOrDefault();
model.Book_Description = author;
}
}
我想获取每一行的作者姓名这张照片准确解释了我想要的内容:
我尝试调试代码.. 它在 foreach 之前运行良好,它显示它有 25 行结果,然后当 foreach 开始执行时它没有显示预期的结果或值。
尝试使用:
var div = documentx.DocumentNode.SelectNodes("//*//table[3]//tr");
而不是:
var div = documentx.DocumentNode.SelectNodes("//*//table[2]//tr");
并像这样使用它:
var author = item.ChildNodes[0].InnerText;
var series = item.ChildNodes[1].InnerText;
var title = item.ChildNodes[2].InnerText;