最近做的一个项目中,其中有这样一个需求:用户要求我们实时在地图上显示某些指定景点的人数,但是却没有给我们数据的接口。不过可以从网页上获取到最新的数据,每小时更新一次。所以经理安排我做一个实时从网页上抓取数据的功能。
既然是网页,那么无用的数据肯定是非常多的,所以就需要用正则表达式来过滤出自己所需要的数据。
不得不说,正则表达式比substring好用多了,而且效率也很不错。下面来分享一下我的这段代码吧:
/**
* 从网站获取日期信息
*
* @Title: getDate
* @Date : 2014-8-12 上午09:42:26
* @return
*/
private String getDate() {
// 从网站抓取数据
String table = catchData();
String date = "";
// 使用正则表达式,获取对应的数据
Pattern places = Pattern.compile("(<p align=\"center\">)([^\\s]*)");
Matcher matcher = places.matcher(table);
while (matcher.find()) {
System.out.println(matcher.group(2));
date = matcher.group(2);
}
return date;
}
/**
* 从网站抓取数据(未经处理)
*
* @Title: getData
* @Date