gatherutil.java
来自「一个用java编写的功能强大的OA系统」· Java 代码 · 共 113 行
JAVA
113 行
package cn.js.fan.module.cms;import java.net.URL;import java.net.HttpURLConnection;import java.io.BufferedReader;import java.io.InputStreamReader;import cn.js.fan.util.net.TrackBack;import org.apache.log4j.Logger;import java.util.regex.Pattern;import java.util.regex.Matcher;import cn.js.fan.util.ErrMsgException;import javax.servlet.ServletContext;public class GatherUtil { Logger logger = Logger.getLogger(GatherUtil.class.getName()); public GatherUtil() { } public String gather(String link) { String str = ""; try { URL url = new URL(link); HttpURLConnection huc = (HttpURLConnection) url.openConnection(); String type = huc.getContentType(); String charset = "utf-8"; int index = type.indexOf("charset="); if (index!=-1) { index = index + 8; charset = type.substring(index).trim(); } else charset = "gb2312"; BufferedReader reader = new BufferedReader( new InputStreamReader(huc.getInputStream(), charset)); String line = reader.readLine(); while (line != null) { str += line; line = reader.readLine(); } reader.close(); huc.disconnect(); } catch (Exception e) { logger.error("gather: " + e.getMessage()); } return str; } public String parseWeather(String source, String content) { if (source.equals("163")) return parseWeather163(content); if (source.equals("china.com.cn")) return parseWeatherChina(content); return ""; } public String parseWeather163(String content) { String patternStr = "", replacementStr = ""; Pattern pattern; Matcher matcher; String str = ""; patternStr = "<div class=\\\"wetMain\\\">(.*)</div>"; pattern = Pattern.compile(patternStr, Pattern.DOTALL); matcher = pattern.matcher(content); if (matcher.find()) { str = matcher.group(1); str = str.replaceAll("\\.\\./images", "http://mimg.163.com/tianqi/images"); str = str.replaceAll("detail\\(\\);", ""); str = str.replaceAll("tomorrow\\(\\);", ""); } return str; } public String parseWeatherChina(String content) { String patternStr = "", replacementStr = ""; Pattern pattern; Matcher matcher; String str = ""; patternStr = "<table width=\\\"308\\\".*</table>"; pattern = Pattern.compile(patternStr, Pattern.DOTALL); matcher = pattern.matcher(content); if (matcher.find()) { str = matcher.group(0); logger.info("str=" + str); str = str.replaceAll("/weathericons", "http://weather.china.com.cn/weathericons"); str = str.replaceAll("/city", "http://weather.china.com.cn/city"); str = str.replaceFirst("<table width=\\\"308\\\"", "<table width=180"); str = str.replaceFirst("未来天气:", ""); str = str.replaceFirst("<td width=\\\"68\\\"", "<td width=0"); str = str.replaceFirst("<td width=\\\"67\\\"", "<td "); str = str.replaceFirst("<td width=\\\"73\\\"", "<td "); } return str; }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?