【发布时间】:2012-08-16 07:02:09
【问题描述】:
我正在使用cheerio 和node.js 来解析网页,然后使用css 选择器在其上查找数据。 Cheerio 在格式错误的 html 上表现不佳。 jsdom 更宽容,但两者的行为不同,我见过在某些情况下,当另一个工作正常时,两者都会中断。
Chrome 似乎在创建 DOM 时使用相同格式错误的 html 做得很好。
如何复制 Chrome 从格式错误的 HTML 创建 DOM 的能力,然后将此 DOM 的“清理”html 表示形式提供给cheerio 进行处理?
这样我就知道它得到的 html 格式正确。我通过设置 page.content 尝试了 phantomjs,但是当我读取 page.content 的值时,html 仍然格式错误。
【问题讨论】:
-
希望在 jsdom 上提交一个错误,其中包含您所描述的任何解析失败。 jsdom 努力以 100% 的准确率模拟浏览器解析算法,因此它应该适用于您的用例;如果没有,这是我们将修复的错误。
标签: node.js web-scraping jsdom