起因:最近用Htmlunit爬取网页。demo运行起来后,发现速度相当慢,一直在不停的加载js文件,偶尔还会报错,js超时等。抓包工具看了一下请求,发现一直在不停的下载js文件。按理说请求过js文件后,本地是会缓存这些文件的。避免再次从服务器下载,增加服务器压力和降低客户端页面加载速度。由此便开始大量的百度,寻求解决方案。一番操作下来,千篇一律的配置文章看了几十个,但是还是没解决问题。无奈只能沉下气来,从新审视代码。

没想到回来看代码,很快便发现WebClient有一个Cache属性,默认size为40。立即debug一下, 发现其实Cache是有存储文件的。那么很明显是请求的js太多了,设置size到合适的数值,重新debug,速度瞬间上来了,js也缓存上了。贴上配置代码:

    webClient.getOptions().setActiveXNative(false);
webClient.getOptions().setCssEnabled(false);
webClient.getOptions().setRedirectEnabled(true);
webClient.getOptions().setJavaScriptEnabled(true);
webClient.getOptions().setDoNotTrackEnabled(true);
webClient.getOptions().setThrowExceptionOnScriptError(false);
webClient.getOptions().setThrowExceptionOnFailingStatusCode(false);
webClient.getCache().setMaxSize(100);

若爬取的页面不需要渲染js,可以直接设置如下:

 webClient.getOptions().setJavaScriptEnabled(false);
直接禁用js。

最新文章

  1. Bundle包的制作与使用
  2. java 接口的作用和好处
  3. Nginx重写
  4. 单例模式singleton
  5. Linux系统如何查看CPU型号等
  6. Sqli-labs less 54
  7. JButton 做图片框
  8. Repeater的ItemCommand事件和ItemCreated事件,高手请跳过~
  9. [动态规划]P1220 关路灯
  10. 找出共同好友 - 数据挖掘 - Scala版
  11. 游戏AI-行为树理论及实现
  12. 简单导出下载excel的方法
  13. Java 技术笔记
  14. Angular cli 发布自定义组件
  15. python持久化
  16. js修改样式
  17. GridEh 当前行
  18. Ice简介+Qt代码示例
  19. Shell基础学习(一) Shell简介
  20. 使用rman备份异机恢复数据库

热门文章

  1. top命令参数详解
  2. stm32之HAL串口中断的callback流程图
  3. Web前端开发——HTML文件结构
  4. Acwing-201-可见的点(数学, 欧拉函数)
  5. django查询优化及ajax编码格式下发送数据 总结
  6. 【原】涉及数据库的单元测试-JTeser
  7. java 强制类项转换
  8. P4981 父子 Cayley公式
  9. Confluence 6.15 附件宏参数
  10. Anadi and Domino