📄 sinaweather.java
字号:
package org.signalon.weather;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import org.htmlparser.Parser;
import org.htmlparser.filters.AndFilter;
import org.htmlparser.filters.HasAttributeFilter;
import org.htmlparser.filters.NodeClassFilter;
import org.htmlparser.tags.Div;
import org.htmlparser.util.NodeIterator;
import org.htmlparser.util.NodeList;
import org.htmlparser.util.ParserException;
import static org.signalon.weather.util.IMessageConstant.*;
public class SinaWeather implements IWeather {
private String url;
public void setUrl(String url) {
this.url = url;
}
public String getWeather(String city) {
String result = "";
try {
Parser parser = new Parser(url + URLEncoder.encode(city, "gbk"));
NodeList nodeList = parser.parse(new AndFilter(new NodeClassFilter(Div.class), new HasAttributeFilter("id", "Weather3DBlk")));
NodeIterator nodeIterator = nodeList.elements();
if (nodeIterator.hasMoreNodes()) {
Div div = (Div) nodeIterator.nextNode();
result = div.getChildrenHTML().replaceAll("^\\s+|\\s+$", "");
}
} catch (ParserException e) {
return PARSER_EXCEPTION;
} catch (UnsupportedEncodingException e) {
return UNSUPPORTED_ENCODING_EXCEPTION;
}
return result;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -