Cheerio 未选择 HTML 字符串中存在的某些元素

Cheerio not selecting certain elements that ARE present in HTML string

我正在尝试抓取一个网站,但我 运行 遇到了一个问题,使用 Request JS,我得到一个 HTML 字符串并传递给 Cheerio .

令人困惑的部分是 HTML 字符串中确实存在一些我正在尝试抓取的部分,但是当我使用 Cheerio 尝试抓取它们时,虽然它在那里但找不到它...

例如,在另一个 table 的最后一行中有一个带有 ID 的 table,我希望通过使用该 ID 作为选择器,我能够获取所有 children TR,但我得到的是第一个 TR,然后是另一个内部有一个 TD 的 TR,然后突然关闭第二个 TR,然后是 table 的结束标记.

从console.logging发送到cheerio.load之前的HTML字符串,我可以看到第二个TR中显然有更多信息,然后是多个其他TR,然后关闭table。但是当我通过 cheerio 运行 它时,这不是它告诉我的。

现在看看它的其余部分(虽然不知道这是否重要......)我注意到它有 href="javascript:void(0)" 在里面 - 类似的东西会不会把 Cheerio 扔掉?

感谢您的帮助。

经过进一步调查,如果我使用 'td:contains("this text")' 这样的选择器,那么它就会出现。但据我所知,没有任何其他方式。

此外 javascript:void(0) 不是问题的原因,我使用正则表达式删除了它的所有实例,但仍然是个谜。

原来代码写错了,可能是为了阻止抓取。有一个标签 <font></div> 结束,这不知何故破坏了 cheerio 的解析能力。

html = html.replace(/[<]font size[=]["]1["][>]\d[<]\/div[>]/g, ""));