2010-11-21 149 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