Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/456.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
使用QueryPath执行javascript_Javascript_Querypath - Fatal编程技术网

使用QueryPath执行javascript

使用QueryPath执行javascript,javascript,querypath,Javascript,Querypath,我正在使用QueryPath刮取一些HTML文件。在这些HTML文件中,有一些包含在HTML注释中的JS脚本。JS将生成一些文本内容显示在屏幕上,因此我无法在不执行JS脚本的情况下找到(刮取)文本内容。 是否可以使用QueryPath执行JS脚本?您是否尝试将JS脚本附加到html页面 qp(QueryPath::HTML_STUB)->append('<script type="text/javascript" language="javascript">alert("Hel

我正在使用QueryPath刮取一些HTML文件。在这些HTML文件中,有一些包含在HTML注释中的JS脚本。JS将生成一些文本内容显示在屏幕上,因此我无法在不执行JS脚本的情况下找到(刮取)文本内容。

是否可以使用QueryPath执行JS脚本?

您是否尝试将JS脚本附加到html页面

qp(QueryPath::HTML_STUB)->append('<script type="text/javascript" language="javascript">alert("Hello!");</script>')->writeHtml();
qp(QueryPath::HTML_STUB)->append('alert(“Hello!”);')->writeHtml();

目前,在QueryPath中无法执行JavaScript。原因是PHP既不能访问浏览器
窗口
对象,也不能访问JavaScript解释器

我所知道的最好的替代方法是使用Selenium(基本上是一个浏览器遥控器)运行浏览器,然后使用其中一个PHP Selenium库来获得结果。当然,如果需要,您可以将QueryPath与PHP Selenium库一起使用


下面是PHP Selenium库的一个不错的概述:

请您花点时间来阐述这个问题好吗?请详细说明具体要求?到目前为止你做了什么?有片段吗?是的,请澄清问题。这几乎没有提供足够的上下文来正确回答。对于这个不清楚的问题,很抱歉@纳文我已经编辑了我的问题。谢谢你的关注。我还没试过,但我觉得这对我很有效。我找到了一种提取javascript内容的方法。我使用这个
next('div#id')->find('script[type=“text/javascript”]”)
进行提取。在那些DIV元素中有几个脚本,但我只能得到第一个。您知道如何获取DIV元素中的所有javascript内容吗?