如何从php执行casperjs?

时间:2017-01-31 15:22:24

标签: php parsing web-scraping phantomjs casperjs

我有来自手册http://docs.casperjs.org/en/latest/cli.html

的test.js代码
var casper = require("casper").create();

casper.echo("Casper CLI passed args:");
require("utils").dump(casper.cli.args);

casper.echo("Casper CLI passed options:");
require("utils").dump(casper.cli.options);

casper.exit();

我可以从终端成功执行它' $ casperjs test.js arg1 arg2 arg3 --foo = bar --plop anotherarg'。它工作正常,但我需要从PHP脚本执行此操作,我已尝试通过PHP代码执行此操作:

<?php

function parser() {
    try {
        echo(exec("C:\casperjs\bin\casperjs.exe  C:\OpenServer\domains\casper\test.js arg1 arg2 arg3 --foo=bar --plop anotherarg"));
        flush();
    } catch (Exception $exc) {
        echo('error!');
        echo $exc->getTraceAsString();
    }
}

parser();

putenv("PHANTOMJS_EXECUTABLE=/usr/local/bin/phantomjs");
putenv("DYLD_LIBRARY_PATH");

?>

但我在__die&#39;中失败了#phantomjs://code/bootstrap.js:110。 我怎么能正确地做到这一点?请帮忙!

1 个答案:

答案 0 :(得分:2)

您可以使用CasperJS的PHP包装器:

或者,您可以使用exec()执行命令:

$result = exec('PHANTOMJS_EXECUTABLE=/usr/local/bin/phantomjs /usr/local/bin/casperjs script.js');
echo $result;