CasperJS/PhantomJS: Navigating HTTPS Pages
CasperJS and PhantomJS face limitations when accessing certain web pages, including those secured with HTTPS. The question arises whether the following page poses any issue: https://maizepages.umich.edu.
Addressing the SSLv3 Vulnerability
The error message "PhantomJS failed to open page status=fail" indicates a potential issue with SSLv3. Recent updates to PhantomJS (< v1.9.8) have removed SSLv3 support, which can prevent these browsers from loading pages that lack TLSv1 compliance. To resolve this, specify the SSL protocol explicitly using the --ssl-protocol flag:
casperjs --ssl-protocol=tlsv1 yourScript.js
For a more comprehensive solution, use the --ssl-protocol=any flag, which supports any available SSL protocol:
casperjs --ssl-protocol=any yourScript.js
Updating to PhantomJS 1.9.8 or Higher
Alternatively, updating to PhantomJS 1.9.8 or later will automatically resolve the SSLv3 conflict. However, this update introduces a new bug specifically affecting CasperJS.
Verifying the Issue
To confirm whether the SSLv3 vulnerability is causing problems, add a resource.error event handler to your 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); });
If the error "Error code: 6. Description: SSL handshake failed" appears, this indicates an SSLv3 issue.
Additional Considerations
For cases involving SSL certificate issues, consider using the --ignore-ssl-errors=true flag to bypass certificate checks.
The above is the detailed content of How Can I Access HTTPS Pages with CasperJS/PhantomJS?. For more information, please follow other related articles on the PHP Chinese website!