Javascript仿真器

Javascript仿真器,javascript,c++,c,emulation,Javascript,C++,C,Emulation,有人知道一个小型、快速、支持DOM层的javascript仿真器吗?在C/C++中 问题是: 我需要在爬虫程序应用程序中对javascript提供基本支持,我想知道除了以下选项之外是否还有其他选项: a) 集成WebKit(无头)(大大降低爬行速度)。 b) 集成SpiderMonkey并自己编写DOM层(不期待这个选项,也不确定它是否值得,速度方面) 还有其他选择吗 谢谢 请投我对WebKit(或其他现有代码)的一票。为什么要费心重新发明轮子,特别是当轮子真的很奇特,复杂,已经花了好几年的时间

有人知道一个小型、快速、支持DOM层的javascript仿真器吗?在C/C++中

问题是: 我需要在爬虫程序应用程序中对javascript提供基本支持,我想知道除了以下选项之外是否还有其他选项:

a) 集成WebKit(无头)(大大降低爬行速度)。 b) 集成SpiderMonkey并自己编写DOM层(不期待这个选项,也不确定它是否值得,速度方面)

还有其他选择吗


谢谢

请投我对WebKit(或其他现有代码)的一票。为什么要费心重新发明轮子,特别是当轮子真的很奇特,复杂,已经花了好几年的时间开发

如果你真的想要,你可以先编写一些代码来检查javascript,这样你就只需要传递需要它的工作。然后,为常见的广告网络和分析包编写过滤器以忽略。如果是我的话,我宁愿和我爬行的方式保持一致


另外,不要认为你只需要基本的支持,因为有一些非常时髦的网站可以做大量的DOM修改。如果您希望爬行是可靠的,那么请准备好支持浏览器支持的内容。最简单的方法是使用浏览器正在使用的相同代码。

更正:V8不支持DOM,只支持JavaScript,因此不支持您想要的

V8:


来自链接:“但是,DOM通常不是由JavaScript引擎提供的,而是由浏览器提供的。V8谷歌Chrome也提供DOM。V8没有DOM层支持,好吧。@Ignacio,@John我没有抓住DOM部分-谢谢大家!我更正了帖子。除了引擎本身不提供DOM;他们依靠浏览器来完成这些工作。@Ignacio,WebKit不仅仅是JavaScript引擎(即JavaScriptCore)。它包括WebCore和JavaScriptCore。WebCore具有DOM功能。@Matthew:当然,但他说“最简单的方法是使用浏览器使用的引擎之一”。这是错误的,因为引擎本身通常不提供DOM支持。@Ignacio,我用不太具体的语言更新了我的帖子,以免混淆。@Ignacio,JavaScript引擎不提供DOM支持。但是布局引擎(WebKit包括)可以,浏览器也可以使用它。Gecko是另一个候选布局引擎,也被浏览器使用。[可以解释javascript的网络爬虫]()和[构建网络爬虫-使用Webkit包]()是类似的问题。但这两个问题的答案都不是特别详细。