我有一个自定义的 phantomJS 程序,我用PhantomJS PHP Library调用它。通过他的程序,我想加载内容并提取渲染页面的一些信息。
从命令行调用过程并将“找到的信息”记录到控制台时,提取工作正常。但现在我想在我的 php 脚本中获取这些信息以便进一步处理。
如何从程序返回信息到调用 php-script?
PHP
$location = '/var/www/vhosts/boos/procs';
$serviceContainer = ServiceContainer::getInstance();
$procedureLoader = $serviceContainer->get('procedure_loader_factory')
->createProcedureLoader($location);
$client = Client::getInstance();
$client->getEngine()->setPath('/usr/local/share/phantomjs/bin/phantomjs');
$client->getEngine()->addOption('--web-security=false');
$client->setProcedure('extractor');
$client->getProcedureLoader()->addLoader($procedureLoader);
$request = $client->getMessageFactory()->createRequest();
$request->setUrl('http://website.de');
$response = $client->getMessageFactory()->createResponse();
$client->send($request, $response);
// GIVE ME THE RESPONSE HERE
程序
var page = require('webpage').create();
// settings
page.settings.loadImages = false;
page.settings.localToRemoteUrlAccessEnabled = true;
page.settings.webSecurityEnabled = false;
page.settings.userAgent = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36 FirePHP/4Chrome';
page.viewportSize = {
width: 1440,
height: 900
};
t = Date.now();
page.open('{{ input.getUrl() }}', function(status) {
if (status == 'success') {
// Evaluate page
var links = page.evaluate(function() {
// GET ALL LINKS FROM DOM
}
// RETURN THE LINKS TO THE PHP SCRIPT
phantom.exit();
}
});