如题,如要截取http://news.sina.com.cn/c/2009-12-14/074119254650.shtml这个页面中新闻内容,其他都不要。
这个新闻内容的正则式怎么写啊,写了很多,都不能用。
或者说,先截取一个大的,然后再把里面不要用的元素替换掉?或者用sgmllib模块?这里面的handle_data提取的是全部页面的文本。。
不知道怎么弄,各位大牛看看看呐!!

解决方案 »

  1.   

    别正则啦,扒拉下来,找到这个
    <div class="blkContainerSblkCon" id="artibody">
    的位置,从后面开始弄,弄到下面出现
    <div style="
    就结束。
    然后把截出来的里面的<strong> <p>之类的去掉
    我看了几个新闻的源码,基本上都是这样的哈哈哈
      

  2.   

    你好,你的意思是用<div class = .... id = ""><div style="直接作为正则式去匹配吗?
      

  3.   

    呵呵,刚看了下你给的网站的源码,LZ说的新闻内容每一段放在一个<p>...</p>中。这个用javascript处理的话不难,如果用java的IO流来处理的话,我有个思路:
    1.用bufferedRead读取每一行,如果该行是以<p>起始的,表示到了一个段落的开始,把这行保存下下
    2.接着看该行的下一行是否是以</p>结尾,如果是表示这段结束,保存这行,如果不是,则表示这段还没有结束,也保存这行。
    3,循环下去,提取出所有的<p>...</p>
      

  4.   


    我的意思是,他的新闻内容那里,都是前面
     <div class="blkContainerSblkCon" id="artibody">
    后面
      <div style="
    你把整个String str.substring(str.indexOf(前面),str.indexOf(后面),取出来的就是这么个新闻的那一坨数据了,就算这坨数据里面有什么别的东东,也比整个查看源代码的得到的整个页面去匹配正则来的容易个人意见啊,呵呵,不合适你的情况的话别当真。
      

  5.   


    对了,我用readline()试试,按行读取,按行判断.