【发布时间】:2014-11-03 09:23:05
【问题描述】:
我正在使用 Node.js 进行一些网络抓取。我想使用 XPath,因为我可以使用多种 GUI 半自动生成它。问题是我找不到有效的方法。
-
jsdom非常慢。它在一分钟左右的时间内解析了 500KiB 的文件,CPU 负载满载,内存占用很大。 - 用于 HTML 解析的流行库(例如
cheerio)既不支持 XPath,也不公开符合 W3C 的 DOM。 - 显然,有效的 HTML 解析是在 WebKit 中实现的,因此使用
phantom或casper将是一种选择,但它们需要以特殊方式运行,而不仅仅是node <script>。我不能依赖这种变化隐含的风险。例如,很难找到如何运行node-inspector和phantom。 -
Spooky是一个选项,但它是 buggy enough,所以它根本没有在我的机器上运行。
那么用 XPath 解析 HTML 页面的正确方法是什么?
【问题讨论】:
-
@mb21 有任何高性能的 DOM 实现来运行它们吗?
标签: javascript html node.js xpath phantomjs