CasperJS / PhantomJS不加载https页面
我知道某些网页PhantomJS /CasperJS无法打开,我想知道这是否是其中之一:给出错误:PhantomJS无法打开页面status = fail。
我尝试忽略ssl错误并更改了用户代理,但是我不确定如何确定要使用哪个代理。
我现在正在做的只是在casper.start(url, function () { ...
})哪里进行Casper的基本设置url=https://maizepages.umich.edu
;
回答:
该问题可能与最近发现的SSLv3漏洞(POODLE)有关。网站所有者被迫从其网站中删除SSLv3支持。由于PhantomJS <v1.9.8默认情况下使用SSLv3 ,因此您应该使用TLSv1:
casperjs --ssl-protocol=tlsv1 yourScript.js
全面解决方案将any
用于新的PhantomJS版本与其他SSL协议一起使用时。但是,这将使POODLE漏洞可在尚未禁用SSLv3的站点上被利用。
casperjs --ssl-protocol=any yourScript.js
替代方法:更新到PhantomJS 1.9.8或更高版本。请注意,更新到PhantomJS
1.9.8会导致一个新的错误,这对于CasperJS来说尤其烦人。
resource.error
在脚本的开头添加一个这样的事件处理程序:
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存在问题,则错误将类似于:
错误代码:6。说明:SSL握手失败
--ignore-ssl-errors=true
顺便说一句,当证书有问题时,您可能还想使用命令行选项来运行。
以上是 CasperJS / PhantomJS不加载https页面 的全部内容, 来源链接: utcz.com/qa/404312.html