首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 如何提取HTML中需要的信息。 [已结贴,结贴人:myepoch]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • myepoch
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 揭帖率:
    发表于:2007-11-08 09:10:33 楼主
    请问各位用什么工具进行HTML的解析呢?
    目的是想通过这个工具将HTML中需要的内容提取出来。比如一个新闻页面,我只要标题,内容(包括与内容有关图片等信息),时间等。而将其他无用信息(比如广告)屏蔽调。

    那个工具比较好,文档和实例多些的。谢谢各位。
    20  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • simpleminedboy
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2007-11-08 09:41:241楼 得分:6
      我不知道有什么工具,但是Java提供一个java.net.URL,可以获得返回HTML的内容,是个InputStream。之后你转为字符串,想怎么用就怎么用,不过,配合专业的正则表达式工具会更好一些。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • danier_sky
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2007-11-08 11:02:422楼 得分:9
    import org.htmlparser.Node;
    import org.htmlparser.NodeFilter;
    import java.net.URL;
    import java.net.URLConnection;
    ....
    public  class  HtmlParser    { 
    //读取html中的表格
      public static String readTable(String resource,int t) throws Exception {
            Parser myParser = new Parser(resource);
         
            String filterStr = "table";        
            NodeFilter filter = new TagNameFilter(filterStr);
            NodeList nodeList = myParser.extractAllNodesThatMatch(filter);
            TableTag tabletag = (TableTag) nodeList.elementAt(t);              
            return tabletag.toHtml();
      }

      public static void main(String[] args) throws Exception {
          String url="www.xxx.com.cn";
          String str=readTable(url,2);  // 2代表html中的第二个table
          System.out.println(str);
      }
    // 读取html
      public String readHtml(){
    DataInputStream dis=null;
    String str=null;
    InputStream is=null;
    try{
    String url="......";
    URL rss=new URL(url);
    URLConnection con= (URLConnection) rss.openConnection();
    dis=new DataInputStream(con.getInputStream());
    String line;
    while((line=dis.readLine())!=null){
    line = new String(line.trim().getBytes("iso8859-1"), "GB2312");
    str+=line;
    }
                  System.out.println(str);
    dis.close();
                  //这里可以截取字符串来获取你想要的信息,如标题
    }
            catch(Exception e){....}
      }

    }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zhonghuabao
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2007-11-08 16:54:023楼 得分:4
    正则表达式..
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • silence1214
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2007-11-08 23:58:114楼 得分:1
    1楼说的很全面,3楼说的不错。2楼用了HtmlParser这个开源包
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved