PhantomJS no puede abrir el sitio HTTPS

Resuelto Sreerag asked hace 12 años • 13 respuestas

Estoy usando el siguiente código basado en el ejemplo de loadspeed.js para abrir un sitio https:// que también requiere autenticación del servidor http.

var page = require('webpage').create(), system = require('system'), t, address;

page.settings.userName = 'myusername';
page.settings.password = 'mypassword';

if (system.args.length === 1) {
    console.log('Usage: scrape.js <some URL>');
    phantom.exit();
} else {
    t = Date.now();
    address = system.args[1];
    page.open(address, function (status) {
        if (status !== 'success') {
            console.log('FAIL to load the address');
        } else {
            t = Date.now() - t;
            console.log('Page title is ' + page.evaluate(function () {
                return document.title;
            }));
            console.log('Loading time ' + t + ' msec');
        }
        phantom.exit();
    });
}  

No se puede cargar la página todo el tiempo. ¿Qué podría estar mal aquí? ¿Los sitios seguros deben manejarse de manera diferente? Sin embargo, se puede acceder correctamente al sitio desde el navegador.

Estoy empezando con Phantom ahora mismo y lo encuentro demasiado bueno para dejar de jugar aunque no sigo adelante con este problema.

Sreerag avatar Aug 19 '12 02:08 Sreerag
Aceptado

Probé las respuestas de Fred y Cameron Tinker, pero solo la opción --ssl-protocol=any parece ayudarme:

phantomjs --ssl-protocol=any test.js

También creo que debería ser mucho más seguro de usar --ssl-protocol=anyya que todavía estás usando cifrado, pero --ignore-ssl-errors=trueignorarás (duh) todos los errores de SSL, incluidos los maliciosos.

JLarky avatar Jul 10 '2014 14:07 JLarky

Lo más probable es que el problema se deba a errores del certificado SSL. Si inicia phantomjs con la opción --ignore-ssl-errors=yes , debería proceder a cargar la página como lo haría si no hubiera errores de SSL:

phantomjs --ignore-ssl-errors=yes [phantomOptions] script.js [scriptOptions]

He visto algunos sitios web que tienen problemas al implementar incorrectamente sus certificados SSL o han caducado, etc. Una lista completa de opciones de línea de comando para phantomjs está disponible aquí: http://phantomjs.org/api/command-line. HTML .

Cameron Tinker avatar Aug 31 '2012 17:08 Cameron Tinker