package mypack;
import java.net.URL;
import java.net.HttpURLConnection;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.*;
import java.io.ObjectInputStream;
import java.util.regex.*;
public class getWeather {
public static void main(String[] args) {
//开始分析返回的xml
HttpURLConnection conn = null;
String outstr = "";
String outstrtest = "";
ObjectInputStream input = null;
HashMap hm = new HashMap();
HashMap hm1 = new HashMap();
//Document doc = null;
try {
String strUrl = "http://www.wopos.com/MainSet/WeatherSet.aspx?city=上海";
URL url = new URL(strUrl);
conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
BufferedReader br = new BufferedReader(new InputStreamReader(conn.
getInputStream(), "GBK"));
String line = "";
while ((line = br.readLine()) != null) {
outstr = outstr + line;
}
br.close();
} catch (Exception ex) {
ex.printStackTrace(System.out);
} finally {
if (conn != null) {
conn.disconnect();
}
}
System.out.println("outstr=" + outstr);
if(outstr == null){
System.out.println("null");
}
try{
Pattern p = Pattern.compile("<span id=\"Label\\d\" style=\"display:inline-block;\"><font size=\"\\d\">[\u4e00-\u9fa5]*\\d*[℃]*[~]*[.]*[-]*\\d*[℃]*[-]*\\d*[.]*\\d*[:]*[\u4e00-\u9fa5]*</font></span>");
Matcher m = p.matcher(outstr);
while (m.find()) {
String s = m.group();
System.out.println("s=" + s);
if(s!=null){
hm.put(s.substring(10, 16), s);
}
}
}catch(Exception ex){
ex.printStackTrace(System.out);
}
System.out.println("地址:" + getAddress(hm));
System.out.println("天气:" + getTianQi(hm));
System.out.println("温度:" + getWenDu(hm));
System.out.println("风力:" + getWind(hm));
}
//获取地址
public static String getAddress(HashMap hm){
String k = "";
try {
Pattern p1 = Pattern.compile("[\u4e00-\u9fa5]{1,4}");
Matcher m1 = p1.matcher((String)hm.get("Label5"));
while (m1.find()) {
k = m1.group();
}
} catch (Exception ex) {
ex.printStackTrace(System.out);
}
return k;
}
//获取天气
public static String getTianQi(HashMap hm){
String k = "";
try {
Pattern p1 = Pattern.compile("[\u4e00-\u9fa5]{1,4}");
Matcher m1 = p1.matcher((String)hm.get("Label1"));
while (m1.find()) {
k = m1.group();
}
} catch (Exception ex) {
ex.printStackTrace(System.out);
}
return k;
}
//获取温度
public static String getWenDu(HashMap hm){
String k = "";
try {
Pattern p1 = Pattern.compile("\\d+[℃]+[~]*\\d+[℃]+");
Matcher m1 = p1.matcher((String)hm.get("Label2"));
while (m1.find()) {
k = m1.group();
}
} catch (Exception ex) {
ex.printStackTrace(System.out);
}
return k;
}
//获取风力
public static String getWind(HashMap hm){
String k = "";
try {
Pattern p1 = Pattern.compile("[\u4e00-\u9fa5]{1,4}");
Matcher m1 = p1.matcher((String)hm.get("Label3"));
while (m1.find()) {
k = m1.group();
}
} catch (Exception ex) {
ex.printStackTrace(System.out);
}
return k;
}
}