⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sinaweather.java

📁 Spring + DWR2 实现的Sina天气抓取
💻 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 + -