怎么能做一个提取网页正文的程序,相对来说比较通用,对于比较规范的网页,都可以提取出网页正文。请大侠们指点!谢谢

解决方案 »

  1.   

    你是要做一个桌面程序吧。从你保存了的html网页,提取出正文来?如果不要求按照网页原有的样式排版,那非常容易嘛。做一个IO流不就可以了。把html文件读进去,过滤掉<XX>这样的标记,剩下的不就是正文了??如果你要要求版式,那你还是放弃吧。那就相当于自己做一个浏览器啊,要去解析、判断各种标记,CSS,JS……
      

  2.   

    利用URL方式把,获取源代码,然后通过正则表达式进行筛选
      

  3.   

    下面是一个获取标题的例子
     package url;import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.net.MalformedURLException;
    import java.net.URL;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;public class UrlCode
    { /**
     * @param args
     * @throws IOException 
     */
    public static void main(String[] args) throws IOException
    {
    URL url = new URL("http://blog.csdn.net/default.html");
    InputStream input = url.openStream();
    BufferedReader br = new BufferedReader(new InputStreamReader(input));
    StringBuffer sb = new StringBuffer();
    String s = "";
    while ((s = br.readLine()) != null)
    {
    sb.append(s);
    }
    String code = new String(sb.toString().getBytes("ISO-8859-1"),"UTF-8");
    Pattern p = Pattern.compile(".*<title>(.+)</title>.*");
    Matcher m  = p.matcher(code);
    m.matches();
    System.out.println("标题是"+m.group(1)); }}
      

  4.   

    下面是获取标题的例子
    package url;import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.net.MalformedURLException;
    import java.net.URL;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;public class UrlCode
    { /**
     * @param args
     * @throws IOException 
     */
    public static void main(String[] args) throws IOException
    {
    URL url = new URL("http://blog.csdn.net/default.html");
    InputStream input = url.openStream();
    BufferedReader br = new BufferedReader(new InputStreamReader(input));
    StringBuffer sb = new StringBuffer();
    String s = "";
    while ((s = br.readLine()) != null)
    {
    sb.append(s);
    }
    String code = new String(sb.toString().getBytes("ISO-8859-1"),"UTF-8");
    Pattern p = Pattern.compile(".*<title>(.+)</title>.*");
    Matcher m  = p.matcher(code);
    m.matches();
    System.out.println("标题是"+m.group(1)); }}
      

  5.   


    这样做好多JavaScript的代码是虑不掉的 啊