gpt4 book ai didi

java.lang.OutOfMemoryError : Java heap space with Htmlunit use 错误

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:52:08 25 4
gpt4 key购买 nike

我正在尝试使用 htmlunit 2.16 删除一些网站。网站内容有点重,大约有 5000 个页面。在一些页面被废弃后,我遇到了 Java 堆空间问题。我已经分配了-Xms1500m 和-Xmx3000m。但在运行 30/45 分钟后,它会抛出 java 内存不足。这是我的例子:

try (WebClient webClient = new WebClient(BrowserVersion.FIREFOX_38)) {
webClient.getOptions().setJavaScriptEnabled(true);
webClient.getOptions().setUseInsecureSSL(true);
webClient.getCookieManager().setCookiesEnabled(true);
webClient.getOptions().setThrowExceptionOnScriptError(false);
webClient.getOptions().setPrintContentOnFailingStatusCode(false);
webClient.setCssErrorHandler(new SilentCssErrorHandler());
webClient.getOptions().setAjaxController(new NicelyResynchronizingAjaxController());

// Get 1st page Data
HtmlPage currentPage = webClient.getPage("www.example.com");

for (int i = 0; i < 5000; i++) {
try {
HtmlElement next = (HtmlElement) currentPage
.getByXPath("//span[contains(text(),'Next')]")
.get(0);

currentPage = next.click();
webClient.waitForBackgroundJavascript(10000);
System.out.println("Got data: " + currentPage.asXml());
} catch (Exception e) {
e.printStackTrace(System.err);
}
}
} catch (Exception e) {
e.printStackTrace(System.err);
}

如我们所见,我单击下一步按钮以获取内容。我还有 webClient.close()。任何人都可以遇到类似的问题吗? htmlunit 是否存在内存泄漏?

最佳答案

请尝试最新版本的 HtmlUnit。我们已经修复了其间的许多内存问题。至少 2.23 有一些关于历史的修正。此外,您现在可以控制历史大小。

关于java.lang.OutOfMemoryError : Java heap space with Htmlunit use 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40287080/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com