我可以将HTMLUnit配置为仅运行特定的javascript进程而不是整个事件吗?

我可以将HTMLUnit配置为仅运行特定的javascript进程而不是整个事件吗?,第1张

概述我希望从一组网页中收集信息,这些网页的格式非常相似.我需要在打开后通过 Javascript加载到页面上的一些信息.似乎HTMLUnit是一个非常常见的工具,所以我正在使用它.不幸的是,这很慢,这是我在许多论坛上看到的抱怨. webClient.getPage()命令是永远的.当我关闭Javascript时,它运行得很快,但我需要执行一些Javascript命令.我想知道,有没有办法有选择地执行一 我希望从一组网页中收集信息,这些网页的格式非常相似.我需要在打开后通过 Javascript加载到页面上的一些信息.似乎HTMLUnit是一个非常常见的工具,所以我正在使用它.不幸的是,这很慢,这是我在许多论坛上看到的抱怨. webClIEnt.getPage()命令是永远的.当我关闭JavaScript时,它运行得很快,但我需要执行一些JavaScript命令.我想知道,有没有办法有选择地执行一些JavaScript命令而不是所有命令?

或者,是否有一个比HTMLUnit快得多的程序来处理JavaScript?

解决方法 有点.您可以以编程方式决定要加载哪些外部 JavaScript URL:

如果启用了JavaScript,HTMLUnit将运行页面上嵌入的所有Js.但是,如果不需要某些外部URL,则可以选择不加载它们.

以下是一些启动代码:

webClIEnt.setWebConnection(new FalsifyingWebConnection(webClIEnt) {        @OverrIDe        public WebResponse getResponse(WebRequest request) throws IOException {            if(request.getUrl().getPath().tolowerCase().equals("some url i don't need ")) {                return createWebResponse(request,"","application/JavaScript");            }            return super.getResponse(request);        }    });

设置以下内容可能会加快速度:

java.util.logging.Logger.getLogger("com.gargoylesoftware.HTMLunit").setLevel(Level.OFF);     webClIEnt.setCSSErrorHandler(new SilentCSSErrorHandler());    webClIEnt.setIncorrectnessListener(new IncorrectnessListener() {        @OverrIDe        public voID notify(String s,Object o) { }    });    webClIEnt.getcookieManager().setcookiesEnabled(false);    webClIEnt.getoptions().setCSSEnabled(false);    webClIEnt.getoptions().setThrowExceptionOnFailingStatusCode(false);    webClIEnt.getoptions().setThrowExceptionOnScriptError(false);    webClIEnt.getoptions().setPrintContentOnFailingStatusCode(false);
总结

以上是内存溢出为你收集整理的我可以将HTMLUnit配置为仅运行特定的javascript进程而不是整个事件吗?全部内容,希望文章能够帮你解决我可以将HTMLUnit配置为仅运行特定的javascript进程而不是整个事件吗?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1127165.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-30
下一篇2022-05-30

发表评论

登录后才能评论

评论列表(0条)

    保存