663
京东网上商城
天气预报程序-抓取和文件读写
package com.zzk.cn; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.ProtocolException; import java.net.URL; import java.util.Enumeration; import java.util.Properties; /** * * @author zhuzhengke * @version 1.0.0 * */ class ReadProperties { public String getProperties(String key) { Properties prop = new Properties(); InputStream inputStream = this.getClass().getResourceAsStream( "/weather_code.properties"); try { prop.load(inputStream); } catch (IOException e) { e.printStackTrace(); } finally { // 关闭 if (null != inputStream) { try { inputStream.close(); } catch (IOException e) { e.printStackTrace(); } } } return prop.getProperty(key); } } public class GetWeather { /* 主函数 */ public static void main(String[] args) { //json(); //获取文件 Properties prop = new Properties(); InputStream inputStream = new GetWeather().getClass() .getResourceAsStream("/weather_code.properties"); try { prop.load(inputStream); System.out.println(prop.getProperty("101020100")); Enumeration<?> en = prop.propertyNames(); while (en.hasMoreElements()) { String obj = (String) en.nextElement(); System.out.println(obj); //抓取网页信息 getInfo(obj); } } catch (IOException e) { e.printStackTrace(); } finally { // 关闭资源 try { inputStream.close(); } catch (IOException e) { e.printStackTrace(); } } } /** * Json解析 */ // public static void json() { // // // 以下为JSON格式抓取实例 // /** // * {"weatherinfo":{"city":"北京","city_en":"beijing","date_y": // * "2011年11月22日","date":"辛卯年","week":"星期二","fchh":"11", // * "cityid":"101010100" // * ,"temp1":"12℃~-2℃","temp2":"7℃~-3℃","temp3":"8℃~-1℃" // * ,"temp4":"12℃~3℃","temp5":"12℃~4℃", // * "temp6":"11℃~4℃","tempF1":"53.6℉~28.4℉" // * ,"tempF2":"44.6℉~26.6℉","tempF3" // * :"46.4℉~30.2℉","tempF4":"53.6℉~37.4℉", // * "tempF5":"53.6℉~39.2℉","tempF6" // * :"51.8℉~39.2℉","weather1":"多云转晴","weather2" // * :"晴","weather3":"晴","weather4":"晴转多云", // * "weather5":"多云转晴","weather6":"阴" // * ,"img1":"1","img2":"0","img3":"0","img4" // * :"99","img5":"0","img6":"99","img7":"0","img8":"1", // * "img9":"1","img10" // * :"0","img11":"2","img12":"99","img_single":"1","img_title1" // * :"多云","img_title2":"晴","img_title3":"晴", // * "img_title4":"晴","img_title5" // * :"晴","img_title6":"晴","img_title7":"晴","img_title8" // * :"多云","img_title9":"多云","img_title10":"晴", // * "img_title11":"阴","img_title12" // * :"阴","img_title_single":"多云","wind1":"北风4-5级" // * ,"wind2":"微风","wind3":"微风","wind4":"微风","wind5": // * "微风","wind6":"微风","fx1" // * :"北风","fx2":"北风","fl1":"4-5级","fl2":"小于3级","fl3" // * :"小于3级","fl4":"小于3级","fl5":"小于3级","fl6":"小于3级", // * "index":"凉","index_d": // * "天气凉,建议着厚外套加毛衣等春秋服装。体弱者宜着大衣、呢外套。因昼夜温差较大,注意增减衣服。" // * ,"index48":"冷","index48_d": // * "天气冷,建议着棉衣、皮夹克加羊毛衫等冬季服装。年老体弱者宜着厚棉衣或冬大衣。","index_uv" // * :"弱","index48_uv":"中等","index_xc":"较适宜","index_tr":"很适宜", // * "index_co":"较舒适" // * ,"st1":"11","st2":"-4","st3":"4","st4":"0","st5":"8","st6" // * :"0","index_cl":"较不宜","index_ls":"基本适宜","index_ag": "极不易发"}} // */ // JSONObject jsonob = JSONObject.fromObject((JSONObject.fromObject(info) // .getString("weatherinfo"))); // // String city = jsonob.getString("city");// 城市 // System.out.println(city); // // String date_y = jsonob.getString("date_y");// 时间 // System.out.println(date_y); // // String date = jsonob.getString("date");// 农历年 // System.out.println(date); // // String week = jsonob.getString("week");// 星期 // System.out.println(week); // // String cityid = jsonob.getString("cityid");// 城市号 // // System.out.println(cityid); // // String temp1 = jsonob.getString("temp1");// 以下是六天内摄氏温度 // System.out.println(temp1); // // String temp2 = jsonob.getString("temp2"); // System.out.println(temp2); // // String temp3 = jsonob.getString("temp3"); // System.out.println(temp3); // // String temp4 = jsonob.getString("temp4"); // System.out.println(temp4); // // String temp5 = jsonob.getString("temp5"); // System.out.println(temp5); // // String temp6 = jsonob.getString("temp6"); // System.out.println(temp6); // // String tempF1 = jsonob.getString("tempF1");// 以下是六天内华氏温度 // System.out.println(tempF1); // // String tempF2 = jsonob.getString("tempF2"); // System.out.println(tempF2); // // String tempF3 = jsonob.getString("tempF3"); // System.out.println(tempF3); // // String tempF4 = jsonob.getString("tempF4"); // System.out.println(tempF4); // // String tempF5 = jsonob.getString("tempF5"); // System.out.println(tempF5); // // String tempF6 = jsonob.getString("tempF6"); // System.out.println(tempF6); // // String weather1 = jsonob.getString("weather1");// 以下是六天天气 // System.out.println(weather1); // // String weather2 = jsonob.getString("weather2"); // System.out.println(weather2); // // String weather3 = jsonob.getString("weather3"); // System.out.println(weather3); // // String weather4 = jsonob.getString("weather4"); // System.out.println(weather4); // // String weather5 = jsonob.getString("weather5"); // System.out.println(weather5); // // String weather6 = jsonob.getString("weather6"); // System.out.println(weather6); // // String wind1 = jsonob.getString("wind1");// 以下六天为风力 // System.out.println(wind1); // // String wind2 = jsonob.getString("wind2"); // System.out.println(wind2); // // String wind3 = jsonob.getString("wind3"); // System.out.println(wind3); // // String wind4 = jsonob.getString("wind4"); // System.out.println(wind4); // // String wind5 = jsonob.getString("wind5"); // System.out.println(wind5); // // String wind6 = jsonob.getString("wind6"); // System.out.println(wind6); // // String fl1 = jsonob.getString("fl1");// 以下为六天风级 // System.out.println(fl1); // // String fl2 = jsonob.getString("fl2"); // System.out.println(fl2); // // String fl3 = jsonob.getString("fl3"); // System.out.println(fl3); // // String fl4 = jsonob.getString("fl4"); // System.out.println(fl4); // // String fl5 = jsonob.getString("fl5"); // System.out.println(fl5); // // String fl6 = jsonob.getString("fl6"); // System.out.println(fl6); // // String index_d = jsonob.getString("index_d");// 当日穿衣指数 // System.out.println(index_d); // // System.out.println(); // try{ // Class.forName("com.mysql.jdbc.Driver"); // // //new oracle.jdbc.driver.OracleDriver; // conn=DriverManager.getConnection("jdbc:mysql://10.1.101.223:3306/weather", "appuser", "opzoon123!"); // // pstmt=conn.prepareStatement("insert into weather_info(city_id,weather_date,weather_year,weather_week,weather_temp,weather_winddirection,weather_windpower,weather_description) values(?,?,?,?,?,?,?,?)"); // // pstmt.setInt(1,Integer.parseInt(cityid)); // pstmt.setString(2,date_y); // pstmt.setString(3,date); // pstmt.setString(4,week); // pstmt.setString(5,temp1); // pstmt.setString(6,wind1); // pstmt.setString(7, fl1); // pstmt.setString(8,index_d); // pstmt.executeUpdate(); // }catch (ClassNotFoundException e) { // e.printStackTrace(); // }catch (SQLException e) { // e.printStackTrace(); // }finally { // try { // pstmt.close(); // } catch (SQLException e1) { // e1.printStackTrace(); // } // try { // conn.close(); // } catch (SQLException e) { // e.printStackTrace(); // } // } // // // System.out.println("以下仅仅是一个Demo"); // // 解析的数据格式2:{"classroom":"0801","peoples":[{"field1":"name1","field2":"age1"},{"field0":"name2","field2":"age2说"}]} // // info = // // "{\"classroom\":\"111\",\"peoples\":[{\"field1\":\"zzk1\",\"field2\":\"age1\"},{\"field1\":\"zzk2\",\"field2\":\"age2\"}]}"; // // // // jsonob = JSONObject.fromObject(info); // // // // String classname = jsonob.getString("classroom"); // // System.out.println(classname); // // // // JSONArray jsons = jsonob.getJSONArray("peoples"); // // int jsonLength = jsons.size(); // // // // // 对json数组进行循环 // // for (int i = 0; i < jsonLength; i++) { // // JSONObject tempJson = JSONObject.fromObject(jsons.get(i)); // // // // String name = StringEscapeUtils.escapeSql(tempJson // // .getString("field1")); // // String age = StringEscapeUtils.escapeSql(tempJson // // .getString("field2")); // // // // System.out.println(name + "-" + age); // // } // } /** * 获取网页信息 */ public static void getInfo(String id) { String path = "https://m.weather.com.cn/data/" + id + ".html"; URL url; String inputline = ""; InputStream input = null; InputStreamReader reader = null; BufferedReader buffer = null; try { url = new URL(path); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setReadTimeout(10 * 1000); conn.setRequestMethod("GET"); input = conn.getInputStream(); reader = new InputStreamReader(input,"utf8"); buffer = new BufferedReader(reader); while ((inputline = buffer.readLine()) != null) { System.out.println(inputline); } } catch (ProtocolException e) { e.printStackTrace(); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { try { if (null != buffer) { buffer.close(); } } catch (IOException e) { e.printStackTrace(); } buffer = null; try { if (null != reader) { reader.close(); } } catch (IOException e) { e.printStackTrace(); } reader = null; try { if (null != input) { input.close(); } } catch (IOException e) { e.printStackTrace(); } input = null; } } }
最后更新:2017-04-02 06:52:11