2010-11-21 150 views
3

有谁知道一个小的,快速的,具有DOM层支持的JavaScript模拟器?在C/C++中?Javascript仿真器

问题: 我需要JavaScript的初步支持在履带的应用,并想知道是否有比其他任何其他选项:

a)将WebKit的(无头)(减慢巨大爬行)。 b)集成SpiderMonkey并自己编写DOM层(不期待这个选项,不知道它的价值是否值得,速度明智)。

还有其他的选择吗?

谢谢!

+0

[网络爬虫,可以解释JavaScript的 ](http://stackoverflow.com/questions/2670082/web-crawler-that-c​​an-interpret-javascript)和[建立一个网络爬虫 - 使用Webkit包 ](http://stackoverflow.com/questions/162181/building-a-web-crawler-using-webkit-packages)是类似的问题。但是没有一个答案是特别详细的。 – 2010-11-21 04:41:00

回答

2

投我WebKit(或其他一些现有的代码)的投票。为什么要重新开发车轮,特别是当车轮真的很花哨,复杂时,花了多年的时间研发。

如果你真的想要,你可以编写一些代码,首先检查javascript,所以你只能传递需要它的工作。然后,编写用于常见广告网络和分析包的过滤器以忽略。如果是我,我宁愿与我如何爬行一致。

另外,不要以为你只需要基本的支持,因为有一些非常时髦的网站,做了大量的DOM修改。如果您希望抓取工作可靠,请准备好支持哪些浏览器支持。最简单的方法是使用浏览器使用的相同代码。

+0

除引擎本身不提供DOM;他们依靠浏览器来这样做。 – 2010-11-21 04:26:50

+0

@Ignacio Vazquez-Abrams,好点。 – Brad 2010-11-21 04:28:13

+0

@Ignacio,WebKit不只是JavaScript引擎(即JavaScriptCore)。它包括WebCore和JavaScriptCore。 WebCore具有DOM功能。 – 2010-11-21 04:31:08

0

修正:V8不支持DOM,只是JavaScript,因此不是你要找的人...

V8:

+0

从链接中可以看出:“然而,DOM通常不是由JavaScript引擎提供的,而是由浏览器提供的,V8也是如此 - Google Chrome提供了DOM。” – 2010-11-21 04:25:23

+0

V8没有DOM层支持,afaik。 – 2010-11-21 04:26:23

+0

@Ignacio,@John我没有捕捉到DOM部分 - 谢谢你们!我纠正了这个帖子。 – 2010-11-21 04:34:29