我有一个网址。我想在执行 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/