编程语言
首页 > 编程语言> > java爬虫问题一:解决使用htmlunit 时候ssl认证失败问题

java爬虫问题一:解决使用htmlunit 时候ssl认证失败问题

作者:互联网

java爬虫问题一:解决使用htmlunit 时候ssl认证失败问题

凯哥Java 凯哥java
前言:

在使用htmlunit 爬取其他网站信息的时候,提示错误信息:unable to find valid certification path to requested target

意思:

java爬虫问题一:解决使用htmlunit 时候ssl认证失败问题

说明证书问题。各种检索,使用了很多方法,以下记录解决思路:

解决方案一:

java爬虫问题一:解决使用htmlunit 时候ssl认证失败问题

一种解决方案是: webClient.getOptions().setUseInsecureSSL(true);

这么设置之后,确实没有在提示unable to find valid certification path to requested target错误了。但是引发了其他的问题。所以该方案不成立。

继续排查:

解决方案二:

java爬虫问题一:解决使用htmlunit 时候ssl认证失败问题

设置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

添加上面代码问题完美解决。

标签:false,htmlunit,certification,ssl,java,getOptions,find,webClient
来源: https://blog.51cto.com/15076218/2586469