zoukankan      html  css  js  c++  java
  • Htmlunit 设置缓存文件

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

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

    1    webClient.getOptions().setActiveXNative(false);
    2    webClient.getOptions().setCssEnabled(false);
    3    webClient.getOptions().setRedirectEnabled(true);
    4    webClient.getOptions().setJavaScriptEnabled(true);
    5    webClient.getOptions().setDoNotTrackEnabled(true);
    6    webClient.getOptions().setThrowExceptionOnScriptError(false);
    7    webClient.getOptions().setThrowExceptionOnFailingStatusCode(false);
    8    webClient.getCache().setMaxSize(100);

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

     webClient.getOptions().setJavaScriptEnabled(false);
    直接禁用js。
  • 相关阅读:
    弄懂Java为何只有值传递
    反转链表进阶
    剑指Offer-16:合并两个有序链表
    剑指Offer-15:反转链表
    剑指Offer-14:输入一个链表,输出该链表中倒数第k个结点。
    剑指Offer-13:调整数组位置使奇数位于偶数前面
    Java实现二分查找
    LDAP
    关于Prometheus运维实践项目
    LDAP-openldap服务部署和测试(YUM安装)
  • 原文地址:https://www.cnblogs.com/BlueToWhite/p/11812756.html
Copyright © 2011-2022 走看看