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

标签 htmlunit

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

Fetch Page source using HtmlUnit : URL got stuck

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

然后我尝试在 HTML UNIT 2.9 和 2.11 上运行它。它在解析时卡在了两者上。引用 the above question for HTML UNIT code scrape that is getting stuck .

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

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

如果它们是用于 google 分析、twitter 等网站的 JS,我可能根本不需要它们。

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

有人知道怎么做吗?

最佳答案

尝试这个。它对我有用:

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);

关于htmlunit - 跳过 HTML 单元中的特定 Javascript 执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14439991/

相关文章:

java - HtmlUnit - 选择表单、复选框、文本字段和提交按钮

watir - 使用带有远程 HTMLUnit 的 Webdriver 的测试无法登录到 gmail

java - 尝试连接到网站时 GAE 应用程序出现未知主机异常

java - HtmlUnit 单击具有相同名称的链接引用中的特定链接

java - 失败的 HttpStatusCodeException : 401 Unauthorized acess using HtmlUnit

gwt - HtmlUnitDriver 的可靠性如何?

java - 使用 HTMLUnit 连接到 URL 时出现错误消息

java - htmlunit:返回一个完全加载的页面

java - Java 字符串末尾的 "..."= 内存空间不足?

java - 下载htmlunit时出现异常