【发布时间】:2011-10-03 04:30:09
【问题描述】:
当我发现 Node.js 是使用 V8 JavaScript 引擎构建的时,我想:
太好了,网页抓取会更容易 将像在浏览器中一样呈现,带有 支持 XPath 和任何 AJAX 调用的“本机”DOM 执行的页面。
- 当它使用与 Chrome 相同的 JavaScript 引擎时,为什么没有原生 DOM?
- 为什么它没有在检索到的页面中运行 JavaScript 的模式?
- 关于 JavaScript 引擎与 Web 浏览器中的引擎,我有哪些不了解的地方?
非常感谢!
【问题讨论】:
-
因为节点不是浏览器。
-
Node.js 不是浏览器这一事实是正确的,但这不是原因。 DOM 不是浏览器的东西,它是用于处理 XML/HTML/SGML 类文档的 API,仅此而已。 Node.js 没有它的原因仅仅是因为它们的主要范围是“后端”服务,而 DOM 解析显然不是他们认为必不可少的 API。此外,它与 JavaScript 也有关系——DOM API 是用 WebIDL 指定的,并且可以并且可以说最好将其实现为 Node.js 的本机模块。
标签: javascript node.js dom v8 headless-browser