Vis*_*ani 24 javascript ssl web-scraping phantomjs casperjs
我知道有一些网页PhantomJS/CasperJS无法打开,我想知道这个是否是其中之一:https://maizepages.umich.edu .CasperJS给出错误:PhantomJS无法打开页面状态=失败.
我尝试忽略-ssl-errors并更改我的用户代理但我不确定如何确定使用哪些.
我现在正在做的就是基本的casper设置在casper.start(url, function () { ... })
哪里url=https://maizepages.umich.edu
;
Art*_* B. 65
该问题可能与最近发现的SSLv3漏洞(POODLE)有关.网站所有者被迫从其网站上删除SSLv3支持.由于PhantomJS <v1.9.8 默认使用SSLv3 ,因此您应该使用TLSv1:
casperjs --ssl-protocol=tlsv1 yourScript.js
Run Code Online (Sandbox Code Playgroud)
any
当新的PhantomJS版本与其他SSL协议一起使用时,这个解决方案就是使用它.但这会使POODLE漏洞在尚未禁用SSLv3的站点上被利用.
casperjs --ssl-protocol=any yourScript.js
Run Code Online (Sandbox Code Playgroud)
替代方法:更新到PhantomJS 1.9.8或更高版本.请注意,更新到PhantomJS 1.9.8会导致新的错误,这对CasperJS来说尤其令人讨厌.
如何验证: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);
});
Run Code Online (Sandbox Code Playgroud)
如果它确实是SSLv3的问题,那么错误将是:
错误代码:6.说明:SSL握手失败
另外--ignore-ssl-errors=true
,当证书出现问题时,您也可能希望使用命令行选项运行.
归档时间: |
|
查看次数: |
18261 次 |
最近记录: |