Cheerio / jQuery эквивалент Descendants.LastOrDefault (пакет Agility HTML) - PullRequest
0 голосов
/ 18 апреля 2019

У меня есть код веб-очистки, который реализован в C # .NET Core 2 с пакетом HTML Agility.

Большая часть нашего сервера перенесена на node.js.Единственная оставшаяся часть - это скребок.В настоящее время я пытаюсь повторить это с Cheerio / jQuery, но я не слишком знаком с синтаксисом jQuery.

Что было бы эквивалентно

DocumentNode.Descendants("table")
            .LastOrDefault(t => t.InnerHtml.Contains("<td align=\"center\">Match</td>"))

Я пытался сделать:

$('table > tbody > tr > td > table > tbody')

Но это все равно дает мне много tbodys.По сути, я хочу взять строки таблицы.Таблица, которую я хочу, должна содержать это поле td.

Спасибо!

РЕДАКТИРОВАТЬ:

Вместо добавления HTML, который я рассчитывал, я вставляю URL.Таким образом, мы можем просто проверить элемент.В основном я хочу взять таблицу Team Schedule, чтобы можно было проанализировать роли и получить их Status, Match, Match Date и остальные столбцы для этой таблицы.https://www.ustanorcal.com/teaminfo.asp?id=82607

Я мог сделать это раньше с помощью фрагмента, который я добавил в своем посте выше, используя Descendants("table").LastOrDefault(), но я не уверен, как это сделать с помощью jQuery.

1 Ответ

1 голос
/ 18 апреля 2019

Вот как я бы это сделал:

// team schedule rows:
$('table:has(b:contains("Team Schedule")) + table table tr')
// team roster rows:
$('table:has(b:contains("Team Roster")) + table table tr')

Я думаю, что это намного чище, чем HTML Agility

...