gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 01:22:00 24 4
gpt4 key购买 nike

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

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

例如,在另一个表的最后一行中有一个带有 ID 的表,我希望通过使用该 ID 作为选择器,我能够获取所有子 TR,但是什么我得到的是第一个 TR,然后是另一个包含一个 TD 的 TR,然后突然关闭第二个 TR,然后是表的关闭标记。

在将 HTML 字符串发送到 Cheerio.load 之前,从 console.logging 中,我可以看到第二个 TR 中显然有更多信息,在该表关闭之前后面还有多个其他 TR。但是当我通过 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, ""));

关于jquery - Cheerio 未选择 HTML 字符串中存在的某些元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37982990/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com