1 需求

周末和节假日推送消息,或者不打扰某些人,定时任务过滤掉某些节假日休息日.最笨的方案就是都把节日提前存储好几个月的,然后到期同步一次.

2 选型方案

2.1.网络接口:

聚合平台:https://www.juhe.cn/docs/api/id/177/aid/601

1.打开找到生活服务
Java实现判断休息日和节假日_百度
2.找到节假日查询信息

Java实现判断休息日和节假日_百度_02
3.查看返回格式进行解析
Java实现判断休息日和节假日_官网_03

百度平台:http://apistore.baidu.com/apiworks/servicedetail/1116.html
Java实现判断休息日和节假日_html_04

3.在线解析

网页信息,获取节假日情况:严重依赖被解析的网页,所以在选取网站的时候,要找稍微靠谱点的;

3.根据国家规定的法定节假日放假情况,每年录入系统,这种如果客户不怕麻烦的话。还是比较靠谱的;

本Demo将选择第二种来实现;

3 使用htmlunit爬取

解析网页信息,获取节假日情况
一开始是使用oup去解析网页的,效果不理想,如果网页是动态生成的时候,用jsoup遇到了各种问题,所以改成了htmlunit,总得来说htmlunit还是很强大的,能够模拟浏览器运行,被誉为java浏览器的开源实现;

首先去官网下载相关jar包,以及阅读相关文档:

http://htmlunit.sourceforge.net/

我这里解析的网页是360的万年历:

http://hao.360.cn/rili/
Java实现判断休息日和节假日_jar包_05