java爬虫问题一:解决使用htmlunit 时候ssl认证失败问题
凯哥Java 凯哥java
前言:
在使用htmlunit 爬取其他网站信息的时候,提示错误信息:unable to find valid certification path to requested target
意思:
说明证书问题。各种检索,使用了很多方法,以下记录解决思路:
解决方案一:
一种解决方案是: webClient.getOptions().setUseInsecureSSL(true);
这么设置之后,确实没有在提示unable to find valid certification path to requested target错误了。但是引发了其他的问题。所以该方案不成立。
继续排查:
解决方案二:
设置setUseInsecureSSL(false);
重要代码:
WebClient webClient = new WebClient(BrowserVersion.CHROME);
/*** htmlunit unable to find valid certification path to requested target
**/
webClient.getOptions().setThrowExceptionOnScriptError(false);//当JS执行出错的时候是否抛出异常, 这里选择不需要
webClient.getOptions().setThrowExceptionOnFailingStatusCode(false);//当HTTP的状态非200时是否抛出异常, 这里选择不需要
webClient.getOptions().setActiveXNative(false);
// webClient.getOptions().setCssEnabled(false);//是否启用CSS, 因为不需要展现页面, 所以不需要启用
webClient.getOptions().setJavaScriptEnabled(true); //很重要,启用JS
webClient.setAjaxController(new NicelyResynchronizingAjaxController());//很重要,设置支持AJAX
添加上面代码问题完美解决。