防止 HtmlUnit 2.13 执行 JavaScript
Posted
技术标签:
【中文标题】防止 HtmlUnit 2.13 执行 JavaScript【英文标题】:Prevent HtmlUnit 2.13 from executing JavaScript 【发布时间】:2013-12-01 11:52:38 【问题描述】:这是我获取页面的代码:
WebClient webClient = new WebClient();
htmlPage page = webClient.getPage(url);
问题是webClient
总是自动执行 javascript 并向我抛出一个错误列表。我只想获取原始来源。如何防止它执行脚本?我发现在 2.9 版本中有一种方法:
webClient.setJavaScriptEnabled(false);
但setJavaScriptEnabled()
函数已被弃用。任何人都知道如何解决这个问题?请帮我。非常感谢。
【问题讨论】:
【参考方案1】:虽然setJavaScriptEnabled(boolean)
已被弃用,但它已添加到WebClient
的WebClientOptions
成员中。这是doc。
要禁用 JavaScript,您应该这样做:
webClient.getOptions().setJavaScriptEnabled(false);
另外,如果你想从网页中获取原始 HTML 代码,你应该看看这个问题:
How to get the pure raw HTML of a page in HTMLUnit while ignoring JavaScript and CSS?
请注意,即使是 asXml()
方法也会更改您获取的网页的格式和内容(即使 JavaScript 被禁用)。
【讨论】:
谢谢!它真的节省了我的一天!但是当我尝试在<div>
中将源显示为我的页面的一部分时,浏览器将对某些源页面“无响应”。你知道为什么吗?以上是关于防止 HtmlUnit 2.13 执行 JavaScript的主要内容,如果未能解决你的问题,请参考以下文章
带有 Selenium 或 HTMLUNIT 的 HttpClient?