CasperJS / PhantomJS不加载https页面

我知道有一些网页PhantomJS / CasperJS无法打开,我想知道这是否是其中之一: https ://maizepages.umich.edu。 CasperJS给出了一个错误:PhantomJS无法打开页面状态=失败。

我试着忽略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 

当更新的PhantomJS版本与其他SSL协议一起使用时,该解决scheme将用于any 。 但是这会使尚未禁用SSLv3的网站上的POODLE漏洞被利用。

 casperjs --ssl-protocol=any yourScript.js 

替代方法:更新到PhantomJS 1.9.8或更高版本。 请注意,更新到PhantomJS 1.9.8会导致一个新的bug ,这对CasperJS尤其恼人。

如何validation:在脚本的开头添加一个像这样的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命令行选项运行。