Как распарсить таблицу

Имеется следующая html страница https://ru.wiktionary.org/wiki/%D0%9F%D0%B5%D1%80%D0%BC%D1%8C Мне нужно из таблицы с падежами достать все значения падежей в ед.ч города. Я написал следующий код

string url = $"https://ru.wiktionary.org/wiki/{cityName}";
var config = Configuration.Default.WithDefaultLoader();
var htmlDocument = await BrowsingContext.New(config).OpenAsync(url);
var items = htmlDocument.QuerySelectorAll("table.morfotable.ru > tbody > tr").Select(x=>x.ChildNodes[2].TextContent);
foreach(var i in items)
{
    Console.WriteLine(i);
}

Что можно в нём подправить?) С парсингом работаю второй день. Меня очень смущает Select(x=>x.ChildNodes[2].TextContent); Столбец с ед.ч должен быть 1, но если указать Select(x=>x.ChildNodes[1].TextContent); То получается пустота.


Ответы (1 шт):

Автор решения: aepot

Учить CSS селекторы, они много всякого могут. Тогда не придется писать лишний код.

var items = htmlDocument.QuerySelectorAll("table.morfotable.ru > tbody > tr > td:nth-child(2)").Select(x => x.TextContent);
foreach(var item in items)
{
    Console.WriteLine(item);
}

nth-child(2) = взять ноду по индексу у текущего родителя, считается начиная с единицы.

→ Ссылка