首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

关于htmlparser运用,求高手,加班的人伤不起啊

2012-07-29 
关于htmlparser运用,求高手,在线等,加班的人伤不起啊!!!我想利用HTMLparser抓取内容 抓取内容为如果页面a

关于htmlparser运用,求高手,在线等,加班的人伤不起啊!!!
我想利用HTMLparser抓取内容 抓取内容为如果页面<a>标签下有<img>标签,则获得<a>标签的href 和 <img>标签的引用图片、
 如果<a>标签下不含有<img>则不获取。两个数据分别存在list集合里.
求高手啊,分不是问题。纠结了好几天了

[解决办法]
正则表达式把 你获取的 内容 一个个扣出来
[解决办法]
没感觉用HTMLParser会有啥严重的问题啊?

跟你操作DOM文档对象基本上已经是一样方便了,无非是多几个IF判断。

NodeFilter filter = new TagNameFilter("A");
nodelist = nodelist.ExtractAllNodesThatMatch(filter, true);

穷举所有A标签,然后检查该A标签下是否有IMG子标签,有就保存起来呗。
[解决办法]

探讨

很纠结,如果用正则表达式就话,取得的就会有好多不想要的,说不清楚,不知是谁设计的网页,那么难抓。

[解决办法]
try this
Java code
        String str = "<li class=\"center\"><a href=\"http://hi.csdn.net/ever089010\" target=\"_blank\" onclick='LogClickCount(this,111);'><img src=\"http://avatar.profile.csdn.net/5/3/8/2_ever089010.jpg\" onmouseover=\"try{showUserCard(this,'ever089010')}catch(ex){};\"/></a></li>"                + "<li title=\"总技术分:0;总技术排名:499417\"><dfn><a href=\"http://hi.csdn.net/ever089010\" target=\"_blank\" onclick='LogClickCount(this,111);'>ever089010</a></dfn></li>"                + "<li class=\"center\"><a href=\"http://hi.csdn.net/ever089010\" target=\"_blank\" onclick='LogClickCount(this,111);'><img src=\"http://avatar.profile.csdn.net/5/3/8/2_ever089010.jpg\" onmouseover=\"try{showUserCard(this,'ever089010')}catch(ex){};\"/></a></li>"                + "<li title=\"总技术分:0;总技术排名:499417\"><dfn><a href=\"http://hi.csdn.net/ever089010\" target=\"_blank\" onclick='LogClickCount(this,111);'>ever089010</a></dfn></li>";        Pattern pattern = Pattern.compile("<a\\s[^<]*href=\"([^\"]*)\"\\s[^<]*<img\\s[^<]*src=\"([^\"]*)\"\\s[^<]*</a>");        Matcher matcher = pattern.matcher(str);        List<String> linkList=new ArrayList<String>();        List<String> picList=new ArrayList<String>();        while (matcher.find()) {            linkList.add(matcher.group(1));            picList.add(matcher.group(2));            System.out.println(matcher.group(1));            System.out.println(matcher.group(2));            System.out.println("==========");        }
[解决办法]
正则啊,楼主都没给出想抓那个网页……

热点排行