嘗試使用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”和用戶代理更改,為什麼 PhantomJS 仍無法加載 HTTPS 頁面?的詳細內容。更多資訊請關注PHP中文網其他相關文章!