我正在使用 QueryPath 来抓取一些 HTML 文件。在这些 HTML 文件中,有一些 JS 脚本包含在 HTML 注释中。JS 会生成一些文本内容显示到屏幕上,所以如果不执行 JS 脚本,我就无法找到(抓取)文本内容。
是否可以使用 QueryPath 执行 JS 脚本?
问问题
288 次
2 回答
0
您是否尝试过将您的 JS 脚本附加到 html 页面。
qp(QueryPath::HTML_STUB)->append('<script type="text/javascript" language="javascript">alert("Hello!");</script>')->writeHtml();
于 2011-08-03T04:37:43.007 回答
0
目前,没有办法在 QueryPath 中执行 JavaScript。原因是 PHP 无法访问浏览器window
对象或 JavaScript 解释器。
我所知道的最好的替代方法是使用 Selenium(基本上是浏览器远程控制器)来运行浏览器,然后使用 PHP Selenium 库之一来获得结果。当然,如果需要,您可以将 QueryPath 与 PHP Selenium 库一起使用。
这是 PHP Selenium 库的一个不错的概述:http: //css.dzone.com/articles/selenium-2-php-code
于 2012-05-23T01:42:02.480 回答