防止HtmlUnit 2.13执行JavaScript

16

这是我获取页面的代码:

WebClient webClient = new WebClient();
HtmlPage page = webClient.getPage(url);

问题是webClient总是自动执行JavaScript并抛出一串错误。我只想获得原始源代码。如何防止执行脚本?我发现在2.9版本中有一种方法:

webClient.setJavaScriptEnabled(false);

但是setJavaScriptEnabled()函数已被弃用。有谁知道如何解决这个问题吗?请帮帮我。非常感谢。

1个回答

22

虽然 setJavaScriptEnabled(boolean) 已被弃用,但它已被添加到WebClientWebClientOptions成员中。这里是文档

为了禁用JavaScript,您应该执行以下操作:

webClient.getOptions().setJavaScriptEnabled(false);
此外,如果你想获取网页的原始HTML代码,你应该查看这个问题:如何在忽略JavaScript和CSS的情况下在HTMLUnit中获取页面的纯粹原始HTML?请注意,即使禁用JavaScript,asXml()方法也会更改抓取的网页的格式和内容。

谢谢!这真的救了我的一天!但是当我尝试将源代码作为页面的一部分显示在<div>中时,浏览器会因为某些源代码页面而“无响应”。你有任何想法吗? - Triet Doan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接