java天气获取网站_java扒取天气网站的数据

1:由于天气apk接口不稳定所以经常获取不到信息。于是就动手写一个扒取天气网站上的数据然后做成json,apk直接调用服务器上扒取的数据增加稳定性。

2:项目主要是用servlet然后正则表达式来提取网站信息。

3:我觉得比较难得地方就是如何写正确的正则来提取出需要的信息,以下记录每个接口中需要的正则

3.1

获取页面省份的编号

//page为需要提取信息的源信息

public static HashtableparseProvincePage(String page){

return getKeyValues(page, ".+?", "(?<=>).+?(?=)", "(?<=pid=)[0-9]+");

}

3.2获取城市的编号

public static HashtableparseDitPage(String page){

return getKeyValues(page, ".+?", "(?<=>).+?(?=)", "(?<=did=)[0-9]+");

}

3.3获取县城编号

public static HashtableparseCidPage(String page){

return getKeyValues(page, ".+?", "(?<=>).+?(?=)", "(?<=cid=)[0-9]+(?=&)");

}

3.4

public static Hashtable getKeyValues(String webPage,String tagRegex,String keyRegex,String valueRegex){

Hashtabletable=new Hashtable();

for(String tag:getAllMathers(webPage,tagRegex)){

table.put(getMatcher(tag,keyRegex), getMatcher(tag, valueRegex));

}

return table;

}

3.5

7天详情

String regex="((?<=class=\"b\">)[\\s\\S]+?
[\\s\\S]+?(?=))";

3.6 洗车指数

return getAllMathers(html, "(?<=洗车指数]).+?(?=

3.7 城市的详细天气状况

getAllMathers(detailHtml, "(?<=class=\"b\" id=\"\\w{9,15}\">).+?(?=)");

4

项目主要的思路就是通过servlet来调用连接然后把信息保存在xml做缓存然后每小时查询一下网站扒取下信息来更新缓存数据,然后客户端就先查询xml中有没有缓存数据没有再通知服务器扒取。

5

0818b9ca8b590ca3270a3433284dd417.png项目的完成效果。我就不一一贴出代码了。需要的留言吧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值