到目前为止,我的工作代码使用HtmlUnit
来获取页面asXML
然而,我发现它正在处理页面上的所有内容,包括shockwave flash对象。这使得处理速度变慢。
我只需要它来处理纯HTML和Javascript,这样它会更快。
这是我的代码:
HtmlPage page = webClient.getPage(sb.toString());
webClient.getJavaScriptEngine().pumpEventLoop(PUMP_TIME);
pageString = page.asXml();
page.asXml()
很慢,也许是因为我上面提到的要点?
有没有办法告诉HtmlUnit不要处理页面的不必要部分?
这是我看到页面处理停留了很长时间(很多次)的地方:
[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]
答案 0 :(得分:0)
HtmlUnit无法处理flash。但是,确实需要花费大量时间来处理JS。也许JS正在从网上获取一些东西,这也花费了更多的时间。无论如何,请注意,日志实际上是INFO
而不是SEVERE
,基本上它告诉您它没有创建任何Flash对象。
如果可能的话,我建议你避免处理JS。