Обработка ошибок в фантоме js - php - PullRequest
0 голосов
/ 27 марта 2020

Я вызываю фантом 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 продолжал работать?

...