PhantomJS/CasperJS 難以載入HTTPS 頁面
嘗試使用PhantomJS/CasperJS 錯誤安全HTTPS 頁面時,使用者可能會遇到以下「 PhantomJS 無法開啟頁面狀態=失敗。
錯誤分析
最近發現的 POODLE SSLv3 漏洞已促使網站所有者在其網站上禁用 SSLv3 支援。然而,由於 PhantomJS 1.9.8 之前的版本預設使用 SSLv3,造訪此類網站可能會導致載入失敗。
解決方案
要解決此問題,請指定調用PhantomJS 時使用TLSv1 協定:
casperjs --ssl-protocol=tlsv1 yourScript.js
要獲得更全面的解決方案,可以適應具有不同SSL 協定的未來PhantomJS 版本,請使用以下內容:
casperjs --ssl-protocol=any yourScript.js
替代方案方法
或者,更新到PhantomJS 1.9.8 或更高版本以避免SSLv3 漏洞問題。但是,這可能會引入影響 CasperJS 的不同錯誤。
驗證
要驗證SSLv3 是否是根本問題,請在CasperJS 中實現resources.error 事件處理程序script:
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 命令列選項。
以上是如何使用 PhantomJS/CasperJS 克服 HTTPS 頁面載入問題?的詳細內容。更多資訊請關注PHP中文網其他相關文章!