6

我有一个网址。我想在执行 Java 脚本后获取 URL 的页面源。

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

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

然后我尝试在 HTML UNIT 2.9 和 2.11 上运行它。它在解析时卡在两者上。有关卡住的 HTML UNIT 代码抓取,请参阅上述问题。

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

我想检查导致问题的 JS 文件并将它们从执行中删除。

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

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

有人知道该怎么做吗?

4

1 回答 1

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);
于 2013-03-06T07:09:04.883 回答