Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在文件中操作HTML_Javascript_Html_Web Scraping_V8 - Fatal编程技术网

Javascript 在文件中操作HTML

Javascript 在文件中操作HTML,javascript,html,web-scraping,v8,Javascript,Html,Web Scraping,V8,我正在尝试使用v8引擎实现一个与网站(类似于selenium)交互的应用程序。如果我将表示HTML的字符串加载到v8 javascript中,那么与之交互的最佳方式是什么。从我所看到的,似乎有两种可能的解决方案:(1)用C++手动实现DOM并将其绑定到V8或(2)找到现有DOM模型并使用它。 这些解决方案中哪一个更容易,或者有其他更好的解决方案吗?使用现有实现比编写自己的实现容易得多。DOM是巨大的 事实上,我甚至会说:要与网站交互,你不需要一个JavaScript引擎(比如V8)和一些附加功能

我正在尝试使用v8引擎实现一个与网站(类似于selenium)交互的应用程序。如果我将表示HTML的字符串加载到v8 javascript中,那么与之交互的最佳方式是什么。从我所看到的,似乎有两种可能的解决方案:(1)用C++手动实现DOM并将其绑定到V8或(2)找到现有DOM模型并使用它。
这些解决方案中哪一个更容易,或者有其他更好的解决方案吗?

使用现有实现比编写自己的实现容易得多。DOM是巨大的

事实上,我甚至会说:要与网站交互,你不需要一个JavaScript引擎(比如V8)和一些附加功能。您很可能需要一个完整的web渲染器。我没有任何具体的建议(1)因为我不太了解这个空间,(2)因为你没有描述你到底想做什么。可能硒或木偶演员是你最好的选择;或者可能是铬嵌入式框架;或者Qt网络引擎;等等

V8只是一个JavaScript引擎[1]。它对HTML、DOM或CSS等一无所知对于V8来说只是一个无意义的字符串。它不知道按钮或onclick处理程序是什么。你不能用它在屏幕上画一个按钮。如果您尝试使用例如
eval(html)
,您会得到一个
SyntaxError
,因为该字符串不是有效的JavaScript,V8只处理JavaScript


[1] 或者更准确地说:ECMAScript引擎。定义口语术语有点棘手;有人说“JavaScript”和“ECMAScript”是同义词,也有人说“JavaScript”==“ECMAScript语言核心+DOM绑定和其他常见的浏览器内容”。

使用现有的实现比编写自己的实现容易得多。DOM是巨大的

事实上,我甚至会说:要与网站交互,你不需要一个JavaScript引擎(比如V8)和一些附加功能。您很可能需要一个完整的web渲染器。我没有任何具体的建议(1)因为我不太了解这个空间,(2)因为你没有描述你到底想做什么。可能硒或木偶演员是你最好的选择;或者可能是铬嵌入式框架;或者Qt网络引擎;等等

V8只是一个JavaScript引擎[1]。它对HTML、DOM或CSS等一无所知对于V8来说只是一个无意义的字符串。它不知道按钮或onclick处理程序是什么。你不能用它在屏幕上画一个按钮。如果您尝试使用例如
eval(html)
,您会得到一个
SyntaxError
,因为该字符串不是有效的JavaScript,V8只处理JavaScript

[1] 或者更准确地说:ECMAScript引擎。定义口语术语有点棘手;有人说“JavaScript”和“ECMAScript”是同义词,也有人说“JavaScript”==“ECMAScript语言核心+DOM绑定和其他常见的浏览器内容”