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

时间:2013-01-21 13:43:35

标签: htmlunit

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

Fetch Page source using HtmlUnit : URL got stuck

最初我怀疑这是由于系统资源和高CPU使用率导致网址陷入困境。

然后我尝试在HTML UNIT 2.9和2.11上运行它。它在解析时都遇到了问题。请参阅 the above question for HTML UNIT code scrape that is getting stuck

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

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

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

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

有人知道怎么做吗?

1 个答案:

答案 0 :(得分: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);
    }
}

然后在设置webClient

时写下来
new InterceptWebConnection(webClient);