java抓取全国城市空气质量jsoup

常量值:

	public static final String[] CITYS = new String[] {"宜宾市","泸州市","重庆市","宜昌市","荆州市","岳阳市","武汉市","黄石市","九江市","上饶市","安庆市","铜陵市","芜湖市","马鞍山市","南京市","镇江市","常州市","南通市","上海市"};public static final String[] RIVERS = new String[] {"淮河流域","长江流域","太湖流域","巢湖流域"};public final static SimpleDateFormat SDF0 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");public final static SimpleDateFormat SDF1 = new SimpleDateFormat("HH:mm:ss");public final static SimpleDateFormat SDF2 = new SimpleDateFormat("yyyy-MM-dd");public final static SimpleDateFormat SDF3 = new SimpleDateFormat("yyyy年MM月dd日HH时");

工具类:

public class ToolsUtil {private final static Logger logger = LoggerFactory.getLogger(ToolsUtil.class);/*** string 转日期*/public static Date s2Date(SimpleDateFormat sdf , String s) {Date date = null;try {synchronized (sdf){date = sdf.parse(s);}} catch (ParseException e) {e.printStackTrace();}return date;}/** 日期格式转换*/public static Date d2Date(SimpleDateFormat sdf , Date d) {Date date = null;try {synchronized (sdf){date = sdf.parse(sdf.format(d));}} catch (ParseException e) {e.printStackTrace();}return date;}/*** 两个list 合并为json*/public static JsonObject list2Json(List k, List v) {JsonObject jsonObj = new JsonObject();for(int i=0;i

 

详细代码见下面,使用jsoup:

public class QualityMonitorServiceImpl{private static final Object PRESENT = new Object();private static final String airQUrl = "http://datacenter.mep.gov.cn/aqiweb2/";private final static Logger logger = LoggerFactory.getLogger(QualityMonitorServiceImpl.class);public Map extractAirQuality() {Map cityMap= new HashMap<>();try {for(String c : CITYS) {cityMap.put(c, PRESENT);}Connection conn = Jsoup.connect(airQUrl);Document doc = conn.get();String time = doc.select("p.tab_bg i.fr.time").text();logger.info("time>>>[{}]",time);Element tHead = doc.select("div.tab_content ul.list_title").get(0);List head = tHead.select("li").eachText();head.remove(0);head.add("quality");logger.info("head>>>[{}]",head);Elements tbody = doc.select("#legend_01_table tr");for(Element e :tbody) {List content = e.select("td").eachText();String city = content.remove(0);if(cityMap.get(city) != null) {content.add(AirQEnum.getAirQ(content.get(0)).getName());//AQI转优良...JsonObject jsonObj = ToolsUtil.list2Json(head, content);cityMap.put(city, jsonObj);}}Date d=ToolsUtil.s2Date(SDF3, time);Date date = ToolsUtil.d2Date(SDF2, d);String updTime = SDF1.format(d);cityMap.put("date", date);cityMap.put("updTime", updTime);} catch (Exception e) {logger.error("抓取空气质量报错[{}]",e);return null;}logger.info("cityAirQMap>>>[{}]",cityMap);return cityMap;}}

 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部