在HTML单元中跳过特定的Javascript执行

Lea*_*ore 6 htmlunit

我有一个URL.我想在执行Java Scripts后获取URL的Page-Source.

使用HtmlUnit获取页面源:URL卡住了

最初我怀疑这是由于系统资源和高CPU使用率导致URL卡住了.

然后我尝试在HTML UNIT 2.9和2.11上运行它.它在解析时都遇到了问题.请参阅上面的问题,以获取卡住的HTML UNIT代码.

现在我怀疑这可能是由于JS Execution进入无限循环.

我想检查哪些JS文件导致问题并将其从执行中删除.

如果他们是谷歌分析,推特等网站的JS,我可能根本不需要它们.

所以我想找到一种方法告诉HTML单元忽略某些JS文件并执行其余的.

有谁知道怎么做?

Kun*_*ore 5

试试这个.它对我有用:

class InterceptWebConnection extends FalsifyingWebConnection{
    public InterceptWebConnection(WebClient webClient) throws IllegalArgumentException{
        super(webClient);
    }
    @Override
    public WebResponse getResponse(WebRequest request) throws IOException {
        WebResponse response=super.getResponse(request);
        if(response.getWebRequest().getUrl().toString().endsWith("dom-drag.js")){
            return createWebResponse(response.getWebRequest(), "", "application/javascript", 200, "Ok");
        }
        return super.getResponse(request);
    }
}
Run Code Online (Sandbox Code Playgroud)

然后在设置你的时候写下面的 webClient

new InterceptWebConnection(webClient);
Run Code Online (Sandbox Code Playgroud)