Cheerio/jQuery相当于subjects.LastOrDefault(HTML敏捷包)

Cheerio/jQuery相当于subjects.LastOrDefault(HTML敏捷包),jquery,node.js,web-scraping,html-agility-pack,cheerio,Jquery,Node.js,Web Scraping,Html Agility Pack,Cheerio,我有一个用C#.NETCore2和HTML敏捷包实现的网页抓取代码 我们将大部分服务器移植到node.js。唯一剩下的部分是这个刮网位。我目前正试图用ChereIO/jQuery复制这一点,但我对jQuery语法不太熟悉 这相当于什么 DocumentNode.Descendants("table") .LastOrDefault(t => t.InnerHtml.Contains("<td align=\"center\">Match</td&g

我有一个用C#.NETCore2和HTML敏捷包实现的网页抓取代码

我们将大部分服务器移植到node.js。唯一剩下的部分是这个刮网位。我目前正试图用ChereIO/jQuery复制这一点,但我对jQuery语法不太熟悉

这相当于什么

DocumentNode.Descendants("table")
            .LastOrDefault(t => t.InnerHtml.Contains("<td align=\"center\">Match</td>"))
但这仍然给了我很多麻烦。我基本上想抓住桌子上的行。我想要的表应该包含该td字段

谢谢

编辑:

我没有添加html,而是粘贴了URL。这样我们就可以检查元素了。我基本上想要抓取
团队时间表
表,这样我就可以解析角色并获得他们的
状态
匹配
匹配日期
以及该表的其余列。


以前,我可以通过使用
子体(“表”).LastOrDefault()
在我的文章中添加的代码片段来实现这一点,但我不确定如何使用jQuery实现这一点。

以下是我将如何实现这些目标:

// 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的东西要干净得多

您使用的是什么HTML,以及您希望使用选择器检索哪些元素?听起来您想要:$('td[align=“center”]”)。请注意,这只是css,因此如果您需要熟悉它,有大量文档。我在上面添加了一个示例。这难道不会抓住我所有满足这一点的
td
元素吗?我想要这张桌子和所有的一排。很抱歉,之前没有粘贴示例。谢谢!如果你不介意的话,你能解释一下吗?我想我遵循了
表:has(b:contains(“团队花名册”)
部分,它基本上是查找一个表,该表包含
元素,该元素包含
团队花名册
。但是+table tr部分做什么呢?这是说将表格立即放在包含tr的单词后面吗?我认为这只会得到
tr
,这是包含标签
status
匹配的标题行,依此类推。如果我想要它下面的行,我会正确地使用:
$('table:has(b:contains(“Team Schedule”))+table table')
,它基本上删除了示例中的最后一个tr ah nevermind,我想我现在明白了。你的问题是对的。如果我想跳过前3行,我会只做一个
。each()
,并且只在ndx为3时添加内容吗?是的,我发现了一些有效的方法:
:not(:first child,:nth child(2),:nth child(3))
对不起,
+
是下一个兄弟(第一个表的),skip 3将是
nth child(n+4)
-顺便说一句,这只是css。
// team schedule rows:
$('table:has(b:contains("Team Schedule")) + table table tr')
// team roster rows:
$('table:has(b:contains("Team Roster")) + table table tr')