Java 使用HtmlUnit加快页面处理速度
到目前为止,我有一个工作代码,它使用Java 使用HtmlUnit加快页面处理速度,java,htmlunit,Java,Htmlunit,到目前为止,我有一个工作代码,它使用HtmlUnit获取页面asXML 然而,我发现它正在处理页面上的所有内容,包括shockwave flash对象。这使得处理速度变慢 我只需要处理简单的HTML和Javascript,这样会更快 这是我的代码: HtmlPage page = webClient.getPage(sb.toString()); webClient.getJavaScriptEngine().pumpEventLoop(PUMP_TIME);
HtmlUnit
获取页面asXML
然而,我发现它正在处理页面上的所有内容,包括shockwave flash对象。这使得处理速度变慢
我只需要处理简单的HTML和Javascript,这样会更快
这是我的代码:
HtmlPage page = webClient.getPage(sb.toString());
webClient.getJavaScriptEngine().pumpEventLoop(PUMP_TIME);
pageString = page.asXml();
page.asXml()
相当慢,可能是因为我上面提到的几点
有没有办法告诉HtmlUnit不要处理页面中不必要的部分
这就是我看到页面处理停滞了相当长一段时间(很多次)的地方:
- HtmlUnit是否也在内存中加载css和图像李>
- HtmlUnit无法处理闪存。不过,处理JS确实需要很多时间。也许,JS从网络上获得了一些东西,这也需要更多的时间。无论如何,请注意日志实际上是一个
,而不是一个INFO
,基本上它告诉您它没有创建任何flash对象severy
如果可能的话,我建议您避免处理JS。任何人都可以提出任何想法?好的,我如何通过不调用“getJavaScriptEngine()”来关闭JS的处理?或者有一个正确的方法。如果禁用,我将尝试禁用。但是,通常在Ajax应用程序中,javascript是为动态内容构建DOM的程序。要禁用JS,应使用
。无论如何,在处理AJAX时,它通常不是很有帮助。只要检查一下,就会发现:)Ajax真的不好吗?隐马尔可夫模型。。。我学习了HtmlUnit,正如许多人建议将其用于Ajax爬行一样。此外,我确实禁用了javascript,但它的处理仍然非常复杂。是否有一种配置可以确保HtmlUnit只处理html?webClient.getOptions().setJavascriptEnabled(false)
[INFO] SEVERE: runtimeError: message=[Automation server can't create object for 'ShockwaveFlash.ShockwaveFlash'.] sourceName=[http://partner.googleadservices.com/gampad/google_ads_gpt.js] line=[9] lineSource=[null] lineOffset=[0]