Я использовал ваш код для поиска значений, но он также ничего не дал для меня. Когда я смотрю на htmlDocument.DocumentNode.OuterHtml
, чтобы просмотреть весь Html, который он очищает, я не вижу в документе ничего, что отражает атрибут forecast-table
.
Кроме того, вы проверяете MyTable каждый раз, когда вы oop через ряды. Вы должны проверить row != null
вместе с атрибутом печати из row
.
var MyTable = Enumerable.FirstOrDefault(htmlDocument.DocumentNode.Descendants("table")
.Where(table => table.Attributes.Contains("id")), table => table.Attributes["id"].Value == "forecast-table");
List<HtmlNode> rows = htmlDocument.DocumentNode.SelectNodes("//tr").ToList();
foreach (var row in rows)
{
try
{
if (row != null) // Here, it should be row, not My Table along with MyTable in line below.
Console.WriteLine(row.GetAttributeValue("forecast-table", " "));
}
catch (Exception)
{
}
}
Проблема в
Вы также должны знать, что Html вы просматриваете, используя Dev Tools на chrome отличается от того, который вы видите в HtmlAgilityPack. Chrome отображает страницу после выполнения сценариев, где HtmlAgilityPack просто предоставляет вам HTML страницы по умолчанию. По этой причине вы не можете получить значение таблицы прогнозов.