谁知道如何屏蔽掉htmlunit抛出的各种异常
我用htmlUnit抓取页面,抓取过程中控制台总是抛出一大堆乱七八糟的东西。webClient.getOptions().setThrowExceptionOnScrip...
我用htmlUnit抓取页面,抓取过程中控制台总是抛出一大堆乱七八糟的东西。
webClient.getOptions().setThrowExceptionOnScriptError(false);
webClient.getOptions().setThrowExceptionOnFailingStatusCode(false);
这俩属性已经设置了,但还是不管用。求高人知道,还有什么方法呀。 展开
webClient.getOptions().setThrowExceptionOnScriptError(false);
webClient.getOptions().setThrowExceptionOnFailingStatusCode(false);
这俩属性已经设置了,但还是不管用。求高人知道,还有什么方法呀。 展开
3个回答
展开全部
在main函数里面加上:
LogFactory.getFactory().setAttribute("org.apache.commons.logging.Log", "org.apache.commons.logging.impl.NoOpLog");
java.util.logging.Logger.getLogger("com.gargoylesoftware.htmlunit")
.setLevel(Level.OFF);
java.util.logging.Logger.getLogger("org.apache.commons.httpclient")
.setLevel(Level.OFF);
追问
不管用呀,还是往外抛
追答
是不是这些代码所在的位置的问题,我测试了一个简单的只是下载网页源码的类,放在最前面不会抛异常,放在HtmlPage page = client.getPage(url);的后面就会抛异常。
展开全部
在main函数里面加上:
1
2
3
4
5
6
7
LogFactory.getFactory().setAttribute("org.apache.commons.logging.Log", "org.apache.commons.logging.impl.NoOpLog");
java.util.logging.Logger.getLogger("com.gargoylesoftware.htmlunit")
.setLevel(Level.OFF);
java.util.logging.Logger.getLogger("org.apache.commons.httpclient")
.setLevel(Level.OFF);
追问:
不管用呀,还是往外抛
追答:
是不是这些代码所在的位置的问题,我测试了一个简单的只是下载网页源码的类,放在最前面不会抛异常,放在HtmlPage page = client.getPage(url);的后面就会抛异常。
可以添加代码如下: 1 WebClient client = new WebClient(); 2 3 client.setIncorrectnessListener(new SilentIncorrectnessListener()); 4 //js异常控制主要的一步 5 client.getOptions().setJavaScriptEnabled(false); 6 client.setCssErrorHandler(new QuietCssErrorHandler()); 7 client.getOptions().setThrowExceptionOnScriptError(false); 8 9 client.getOptions().setThrowExceptionOnFailingStatusCode(false);10 //设置日志级别11 java.util.logging.Logger.getLogger("com.gargoylesoftware").setLevel(Level.OFF);
1
2
3
4
5
6
7
LogFactory.getFactory().setAttribute("org.apache.commons.logging.Log", "org.apache.commons.logging.impl.NoOpLog");
java.util.logging.Logger.getLogger("com.gargoylesoftware.htmlunit")
.setLevel(Level.OFF);
java.util.logging.Logger.getLogger("org.apache.commons.httpclient")
.setLevel(Level.OFF);
追问:
不管用呀,还是往外抛
追答:
是不是这些代码所在的位置的问题,我测试了一个简单的只是下载网页源码的类,放在最前面不会抛异常,放在HtmlPage page = client.getPage(url);的后面就会抛异常。
可以添加代码如下: 1 WebClient client = new WebClient(); 2 3 client.setIncorrectnessListener(new SilentIncorrectnessListener()); 4 //js异常控制主要的一步 5 client.getOptions().setJavaScriptEnabled(false); 6 client.setCssErrorHandler(new QuietCssErrorHandler()); 7 client.getOptions().setThrowExceptionOnScriptError(false); 8 9 client.getOptions().setThrowExceptionOnFailingStatusCode(false);10 //设置日志级别11 java.util.logging.Logger.getLogger("com.gargoylesoftware").setLevel(Level.OFF);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
手把手教你屏蔽掉windows上的垃圾广告弹窗
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询