PhantomJS 加载 HTTPS 页面错误
PhantomJS/CasperJS 在打开某些网页时遇到困难,包括 https://maizepages.umich.edu。当 CasperJS 尝试加载此页面时,它返回错误“PhantomJS 无法打开页面 status=fail。”
确定原因
要确定根本原因,检查错误日志很有帮助。一个常见问题是缺乏对 TLSv1 的支持。 PhantomJS 1.9.8 之前的版本默认使用 SSLv3,由于 POODLE 漏洞,许多网站已禁用 SSLv3。
解决方案:TLSv1 支持
解决此问题问题,使用以下命令指定 TLSv1 作为 SSL 协议:
casperjs --ssl-protocol=tlsv1 yourScript.js
或者,可以使用“any”协议,它将支持未来 PhantomJS 版本中可用的任何较新的 SSL 协议。但是,这可能会暴露尚未禁用 SSLv3 的网站上的漏洞。
casperjs --ssl-protocol=any yourScript.js
验证修复
要确认错误是否与 SSLv3 有关,请将以下资源错误处理程序添加到您的脚本:
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);
});
如果错误确实与 SSLv3 相关,则错误消息将类似于:
Error code: 6. Description: SSL handshake failed
其他选项
对于与证书相关的错误,建议使用 --ignore-ssl-errors=true 命令行 选项。这将忽略 SSL 证书验证错误。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3