使用PhantomJS和PHP?

时间:2014-10-16 08:22:34

标签: php phantomjs

我正在尝试使用不同的PHP方法来“获取”一个网站&将HTML输出保存到我​​的服务器上的文件中。但是,我尝试的URL包含javascript。

我在php脚本输出中看到的HTML是一些内容(通过我指定的URL上的Javascript创建)。

我找到了一个名为PhantomJS的东西,它显然用“处理过的”Javascript解析了URL。

我发现的例子不完整&只显示一部分代码,没有任何完整/有用的工作脚本。

一些问题

1) - 我想我可以做这个部分,还没有测试过。

我可以使用EXEC或SYSTEM命令通过我的PHP脚本激活PhantomJS。

我没有测试过,但我想我知道如何将2个变量发送到PhantomJS

http://phantomjs.org/quick-start.html

猜猜:

address = system.args[1];
value = system.args[2]; 

phantomjs loadspeed.js http://www.google.com 56

(56是第二个变量)我想我可以将几个变量传递给PhantomJS。??

2)我无法/尚未找到这些答案。任何人都可以帮忙。

a)是否可以将网站的HTML结果保存到我指定的文件中(我传递给脚本的变量之一)。

b)将HTMl代码传递回PHP脚本&将其保存到数组/变量中。

是否有任何好的示例 - 使用PHP脚本中的幻像JS的小型但工作脚本?

1 个答案:

答案 0 :(得分:0)

如果我正确地解决了您所面临的问题,我建议您执行以下操作:

您可以使用的一个示例:

<?php
// An example of using php-webdriver.

require_once('lib/__init__.php');

// launching with GhostDriver

// remote host
//$host='http://162.243.175.134:8080';

//host launched on local machine
$host='http://127.0.0.1:8080';


$desired_capabilities =  DesiredCapabilities::phantomjs();
$driver = RemoteWebDriver::create($this->host,$desired_capabilities,5000);
$driver->get('http://www.google.com');

// this way you're able to get page source
echo $driver->getPageSource();  


?>

$driver->getPageSource();函数的实际结果: http://gyazo.com/4a5c4c1c378d7dc9714ddcc9e37b0174

只要您将页面源变为变量,您就可以将其保存到文件(在您的服务器上)或使用它执行其他操作。

我同意@Artjom B. sending and receiving data to/from phantomJs with php的描述相当不错。

希望我的想法能帮到你。

问候。