Maison >interface Web >js tutoriel >Pourquoi PhantomJS ne parvient-il pas à ouvrir les pages HTTPS et comment puis-je y remédier ?
Erreurs de page HTTPS de chargement de PhantomJS
PhantomJS/CasperJS rencontrent des difficultés à ouvrir certaines pages Web, notamment https://maizepages.umich.edu. Lorsque CasperJS tente de charger cette page, il renvoie l'erreur "PhantomJS n'a pas réussi à ouvrir la page status=fail."
Détermination de la cause
Pour identifier la cause sous-jacente, il est utile d'inspecter les journaux d'erreurs. Un problème courant est le manque de prise en charge de TLSv1. Les versions de PhantomJS antérieures à 1.9.8 utilisent SSLv3 par défaut, qui a été désactivé sur de nombreux sites Web en raison de la vulnérabilité POODLE.
Solution : prise en charge de TLSv1
Pour résoudre ce problème problème, spécifiez TLSv1 comme protocole SSL à l'aide de la commande suivante :
<code class="sh">casperjs --ssl-protocol=tlsv1 yourScript.js</code>
Alternativement, le protocole "any" peut être utilisé, qui prendra en charge tous les protocoles SSL plus récents disponibles dans les futures versions de PhantomJS. Cependant, cela peut exposer des vulnérabilités sur les sites qui n'ont pas encore désactivé SSLv3.
<code class="sh">casperjs --ssl-protocol=any yourScript.js</code>
Vérification du correctif
Pour confirmer si l'erreur est liée à SSLv3, ajoutez le gestionnaire d'erreur de ressource suivant à votre script :
<code class="sh">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); });</code>
Si l'erreur est effectivement liée à SSLv3, le message d'erreur ressemblera à :
Error code: 6. Description: SSL handshake failed
Option supplémentaire
Pour les erreurs liées au certificat, il est recommandé d'utiliser l'option de ligne de commande --ignore-ssl-errors=true. Cela ignorera les erreurs de vérification du certificat SSL.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!