我正在尝试通过HTMLUnit抓取html内容。一切都很好,但是无法获取Flash内容,这些内容实际上是<img>
可见的<object>
,我有
webClient.getOptions().setJavaScriptEnabled(true);
webClient.getOptions().setActiveXNative(true);
webClient.getOptions().setAppletEnabled(true);
webClient.getOptions().setCssEnabled(true);
在某些地方,我发现someone说HTMLUnit不支持Flash,但是这些答案似乎过时了,所以提出了这个问题。有人请帮忙。
谢谢。
最佳答案
我用help找到了它
为此,我已经将我的HTMLUnit版本从2.15降级到2.13,因为在2.15 BrowserVersionFeatures.JS_FRAME_RESOLVE_URL_WITH_PARENT_WINDOW
中似乎已弃用,并且不知道在这里替换了什么功能。
private static BrowserVersion firefox17WithUptoDateFlash = new BrowserVersion(BrowserVersion.FIREFOX_17.getApplicationName(), BrowserVersion.FIREFOX_17.getApplicationVersion(), BrowserVersion.FIREFOX_17.getUserAgent(), BrowserVersion.FIREFOX_17.getBrowserVersionNumeric(),new BrowserVersionFeatures[]{
BrowserVersionFeatures.JS_FRAME_RESOLVE_URL_WITH_PARENT_WINDOW,
BrowserVersionFeatures.STYLESHEET_HREF_EXPANDURL,
BrowserVersionFeatures.STYLESHEET_HREF_STYLE_NULL
});
static {
PluginConfiguration plugin1 = new PluginConfiguration(
"Shockwave Flash",
"Shockwave Flash 11.4 r402",
"NPSWF32_11_4_402_287.dll");
plugin1.getMimeTypes().add(new PluginConfiguration.MimeType(
"application/x-shockwave-flash",
"Adobe Flash movie",
"swf"));
firefox17WithUptoDateFlash.getPlugins().add(plugin1);
}
final WebClient webClient = new WebClient(firefox17WithUptoDateFlash);
在这里,新编写的浏览器实例将支持htmlunit充当启用Flash的无GUI浏览器
关于java - 如何启用Flash到HTMLUnit?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24995989/