尝试使用 PhantomJS/CasperJS 加载 HTTPS 页面时,尽管设置了“ignore-ssl-errors”,但仍可能会遇到错误修改用户代理。
此问题可能源于 SSLv3 漏洞 (POODLE),促使网站所有者禁用 SSLv3 支持。由于早期版本的 PhantomJS 默认使用 SSLv3,因此切换到 TLSv1 甚至“任何”SSL 协议可以解决该问题:
casperjs --ssl-protocol=tlsv1 yourScript.js
casperjs --ssl-protocol=any yourScript.js
或者,更新到 PhantomJS 1.9.8 或更高版本可以解决该问题,尽管它引入了一个单独的错误。
要验证 SSLv3 是否是原因,请实现“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); });
如果错误匹配“错误代码:6. 描述” : SSL 握手失败,”SSLv3 很可能是罪魁祸首。
最后,考虑使用“--ignore-ssl-errors=true”命令行选项来处理证书问题。
以上是尽管有'ignore-ssl-errors”和用户代理更改,为什么 PhantomJS 仍无法加载 HTTPS 页面?的详细内容。更多信息请关注PHP中文网其他相关文章!