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 + -
显示快捷键?