2015-01-13 61 views
0

我在使用java中的gargoylesoftware htmlunit以在運行javascript之後獲取網頁(因爲您無法使用內置java庫進行此操作)。我在一家webscraper用這個,所以這段代碼被運行很多很多次,沒有問題,但是相當隨機我每隔一小時左右得到這個錯誤,運行該程序後:使用htmlunit的錯誤

Jan 13, 2015 8:03:52 AM com.gargoylesoftware.htmlunit.WebConsole info 
INFO: ThreadStats: couldn't get the catalog (undefined) 
Jan 13, 2015 8:03:52 AM com.gargoylesoftware.htmlunit.WebConsole info 
INFO: ThreadStats: couldn't get the catalog() 

代碼這個錯誤是出現在是:

final HtmlPage page = webClient.getPage(URIget.getSearchURL(ToSearch, board)); 

我敢肯定,誤差不從我URI.getSearchURL方法起源,因爲它沒有做任何幻想,只有堅持弦數一起

+0

所以你只是不希望消息出現?或者你想知道它爲什麼出現? – Arya

+0

@Arya如果可能的話。 – user3537381

回答

0

嘗試將這些放在crea後面並且它應該防止消息顯示

  webClient.setCssErrorHandler(new SilentCssErrorHandler()); 
      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); 
      java.util.logging.Logger.getLogger("com.gargoylesoftware.htmlunit.javascript.StrictErrorReporter").setLevel(Level.OFF); 
      java.util.logging.Logger.getLogger("com.gargoylesoftware.htmlunit.javascript.host.ActiveXObject").setLevel(Level.OFF); 
      java.util.logging.Logger.getLogger("com.gargoylesoftware.htmlunit.javascript.host.html.HTMLDocument").setLevel(Level.OFF); 
      java.util.logging.Logger.getLogger("com.gargoylesoftware.htmlunit.html.HtmlScript").setLevel(Level.OFF); 
      java.util.logging.Logger.getLogger("com.gargoylesoftware.htmlunit.javascript.host.WindowProxy").setLevel(Level.OFF); 
      java.util.logging.Logger.getLogger("com.gargoylesoftware").setLevel(Level.OFF); 
      java.util.logging.Logger.getLogger("org.apache").setLevel(Level.OFF); 
+0

這可能會消除錯誤,但不會阻止它發生並破壞我的程序。 – user3537381

+0

@ user3537381我不知道它確實打破了你的程序。你是對的這隻能防止它被打印。另一種解決方案是使用try/catch來處理錯誤,這種方式不會停止你的程序,並且你可以控制錯誤發生時會發生什麼。 – Arya

+0

目前我正在嘗試使用catch方案,儘管它並不是最好的解決方案。 – user3537381