美文网首页Node开发札记我爱编程
在 Node.js 上解析 HTML 的最佳实践

在 Node.js 上解析 HTML 的最佳实践

作者: 张嘉夫 | 来源:发表于2017-02-06 23:47 被阅读742次

    如果希望构建 DOM,可以用 jsdom

    还有 cheerio,它有 jQuery 接口,比老版本的 jsdom 速度快许多,尽管目前它们在表现上已经基本相似了。

    也可以看看 htmlparser2,流解析,以它的标准来看,好像是比其它库都要快,默认是不支持 DOM 的。它也可以构建 DOM,因为它也绑定了一个创建 DOM 的处理程序,就是 cheerio。

    parse5 看起来也是一个不错的方案。它相当活跃(这次更新的最后一次 commit 是 11 天前),符合 WHATWG 标准,被运用在 jsdom, AngularPolymer 中。

    如果你是为了爬网站而解析 HTML 的话,可以用 YQL。这里有一个对应的 node 模块。如果 HTML 来自于一个静态网站,我想 YQL 会是最好的方案,因为你依赖于那个服务,而不是自己的代码和处理性能。不过要注意,如果网站该页面通过 robot.txt 驳回的话就不起作用了,YQL 对这点无能无力。

    如果你想爬的网站是动态的,就应该用没有图形界面的浏览器比如 phantomjs。同样也可以看看 casperjs。你可以在 node 中用 SpookyJS 来控制 casperjs。

    除了 phantomjs 还有 zombiejs。不同于不能嵌入 nodejs 的 phantomjs,zombiejs 就是一个 node 模块。

    如果需要更进一步的解决方案,可以看 nettuts+ 的教程。

    相关文章

      网友评论

        本文标题:在 Node.js 上解析 HTML 的最佳实践

        本文链接:https://www.haomeiwen.com/subject/utxpittx.html