1.urlA是一篇文章的正文页网址
2.把urlA传递给程序,程序分析urlA页面内容,并结合其他自动采集的链接分析出该网站的结构(主要是正文页)
3.程序输出文章的标题、正文内容(不包除正文以外的内容,如网站的导航条、页脚)能否有希望实现呢,给一个思路也行。谢谢了

解决方案 »

  1.   

    用URL取下网页的内容,然后用正则匹配获取文章标题及内容那段。标题和内容之间肯定有个什么符号的,用它来区分就好了。取网页内容的源码,修改下:package test;import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.net.URL;public class TestURLReader {
    /**
     * @param args
     */
    public static void main(String[] args) {
    BufferedWriter bw = null;
    try {
    int i=0;
    File f = new File("F:/test" + i + ".html");
    URL url = new URL("http://www.baidu.cn");
    BufferedReader buf = new BufferedReader(new InputStreamReader(
    url.openStream())); String str;
    String all = "";
    bw = new BufferedWriter(new FileWriter(f, false)); while ((str = buf.readLine()) != null) {
    all += str;
    }
    bw.write(all.toString());
    bw.close();

    } catch (Exception e1) {
    e1.printStackTrace();
    } finally {
    try {
    bw.close();
    } catch (IOException e) {
    e.printStackTrace();
    }
    System.exit(0);
    }
    }
    }
      

  2.   


    应该每个网站都有自己不同模板,如果要做得好还是有一定难度.
    如果要做好肯定要用到自然语言分析,程序能够自动分析出主,谓,宾,能够自动抽出中心思想,自动摘要像baidu查询显示结果那样
      

  3.   

    比如有下列结构的文章模板<html>
    <head>
    </head>
    <body>
    <div>
    导航的
    </div> <div>
    内容部分
    <div>这是文章的正文部分,这部分的标签绝大多数情况与整体标签结构是有所区别的.<br />
    当分析多个文章页面的结构时,如何让程序识别只有这部分内容不同。<br />
    <b>当然导航条可能有轻微的变化</b>,但通常正文都是内容较多、变化很大的部分,
    而且可以使用其他一些能够区别正文与非正文的参考因素。
    而得出页面结构是要对很多页面进行分析的,而不是1个页面
    </div>
    </div> <div>
    页脚
    </div>
    </body>
    </html>如果找出(程序自动找出)了很多篇这种结构的文章,如何让程序分析出模板结构呢?
      

  4.   

    呵呵,我写过一个程序,但找不到了,基本的算法是解析所有的标签,然后通过给标签加权,就可以计算出网页的正文,不能100%正确,但有内容的网页基本都可以解析出来的.
    具体的方法,设定正文的容器,有的网站正文是DIV中,有的是TABLE,
    加权的方法统计P出现次数,TEXT的长度以及其它容器的个数,具体的网站要调整一下参数.
      

  5.   


    <head></head>
    <body>
      <div>
    <div>
      <b></b>
              <p></p>
    </div>
    <p></p>
    <p></p>
      </div>  <div>
    <p></p>
    <p></p>
      </div>
    </body>对节点:0
     00
    1
     10
       101
          1010
          1011
       102
       103
     11
        110
        111计算每个节点的权值,权值由文本个数、tag标签、标点符号、控制符号等因素共同决定。然后取出权值最大节点的innerHTML,应该就是正文内容了