Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用HtmlUnit加快页面处理速度_Java_Htmlunit - Fatal编程技术网

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
      ,而不是一个
      severy
      ,基本上它告诉您它没有创建任何flash对象


      如果可能的话,我建议您避免处理JS。

      任何人都可以提出任何想法?好的,我如何通过不调用“getJavaScriptEngine()”来关闭JS的处理?或者有一个正确的方法。如果禁用,我将尝试禁用。但是,通常在Ajax应用程序中,javascript是为动态内容构建DOM的程序。要禁用JS,应使用
      webClient.getOptions().setJavascriptEnabled(false)
      。无论如何,在处理AJAX时,它通常不是很有帮助。只要检查一下,就会发现:)Ajax真的不好吗?隐马尔可夫模型。。。我学习了HtmlUnit,正如许多人建议将其用于Ajax爬行一样。此外,我确实禁用了javascript,但它的处理仍然非常复杂。是否有一种配置可以确保HtmlUnit只处理html?
      [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]