javascript - phantom - node jsdom
CasperJS/PhantomJS no carga la página https (1)
El problema puede estar relacionado con el descubrimiento reciente de una vulnerabilidad SSLv3 (POODLE). Los propietarios de sitios web se vieron obligados a eliminar el soporte SSLv3 de sus sitios web. Dado que PhantomJS <v1.9.8 usa SSLv3 de default , debe usar TLSv1:
casperjs --ssl-protocol=tlsv1 yourScript.js
La solución general sería usar
any
para cuando las versiones más nuevas de PhantomJS vengan junto con otros protocolos SSL.
Pero esto haría que la vulnerabilidad POODLE sea explotable en sitios que aún no han deshabilitado SSLv3.
casperjs --ssl-protocol=any yourScript.js
Método alternativo: Actualización a PhantomJS 1.9.8 o superior. Tenga en cuenta que actualizar a PhantomJS 1.9.8 conduce a un nuevo error , que es especialmente molesto para CasperJS.
Cómo verificar:
agregue un controlador de eventos
resource.error
como este al comienzo de su script:
casper.on("resource.error", function(resourceError){
console.log(''Unable to load resource (#'' + resourceError.id + ''URL:'' + resourceError.url + '')'');
console.log(''Error code: '' + resourceError.errorCode + ''. Description: '' + resourceError.errorString);
});
Si de hecho es un problema con SSLv3, el error será algo como:
Código de error: 6. Descripción: error en el protocolo de enlace SSL
Por otro lado, también es posible que desee ejecutar con la opción de línea de comandos
--ignore-ssl-errors=true
, cuando hay algo mal con el certificado.
Sé que hay ciertas páginas web que PhantomJS / CasperJS no pueden abrir, y me preguntaba si esta era una de ellas: https://maizepages.umich.edu . CasperJS da un error: PhantomJS no pudo abrir el estado de la página = falla.
Intenté ignorar los errores ssl y cambiar mi agente de usuario, pero no estoy seguro de cómo determinar cuáles usar.
Todo lo que estoy haciendo ahora es la configuración básica de casper con
casper.start(url, function () { ... })
donde
url=https://maizepages.umich.edu
;