Я вызываю фантом js скрипт из PHP:
function get_page_phantomjs($url,$proxy) {
$page = '';
echo"\ngetting $url\nusing this proxy $proxy\n";
exec("phantomjs --proxy=$proxy getPage.js $url",$page);
print_r($page);
}
фантом js скрипт
var system = require('system');
var args = system.args;
if (args.length === 1) {
console.log('Try to pass some arguments when invoking this script!');
}
else {
var page = require('webpage').create();
page.settings.resourceTimeout = 30000;
page.onResourceTimeout = function(e) {
console.log(e.errorCode);
console.log(e.errorString);
console.log(e.url);
phantom.exit(1);
};
page.onError = function(msg, trace) {
//prevent js errors from showing in page.content
console.log('ERROR PAGE IN PHANTOMJS');
phantom.exit(1);
};
page.settings.userAgent = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.2062'
page.open(args[1], function(status) {
page.onLoadFinished = function(status){
console.log(page.content);
page.clearCookies();
phantom.exit();
};
});
}
иногда этот фантом js код не может захватить Исходный код страницы, а затем просто закройте весь работающий скрипт, вместо этого можно просто отправить в мой скрипт PHP некоторую строку, например:
Can't get the page source.
Поскольку я хочу, чтобы мой PHP продолжал работать?