Java抽取HTML内容

利用Java抽取HTML中的内容当然不想JavaScript中那么简单(obj.innerHTML),但绝对是可以实现的,这里给大家介绍一种。

思路很直接:利用正则表达式配置html代码,然后删除这些代码。
当然还有一种方法是直接配置中文,这种方法虽然明显有问题,但对纯中文内容还是很准确。两种方法这里都提供。

我们需要配置的文字如下:
<td><a target=\"_blank\" href=\"http://www.baidu.com/baidu?cl=3&tn=baidutop10&fr=top1000&wd=%A1%B6%CC%C6%C9%BD%B4%F3%B5%D8%D5%F0%A1%B7%B9%AB%D3%B3\">《唐山大地震》公映</a></td>

我们需要从中抽取出“[u]唐山大地震》公映[/u]”

[b]方法一:查找出html标签,然后删除[/b]

public void findContent(){
// 配置html标记。
Pattern p = Pattern.compile("<(\\S*?)[^>]*>.*?| <.*? />");
String html = "<td><a target=\"_blank\" href=\"http://www.baidu.com/baidu?cl=3&tn=baidutop10&fr=top1000&wd=%A1%B6%CC%C6%C9%BD%B4%F3%B5%D8%D5%F0%A1%B7%B9%AB%D3%B3\">《唐山大地震》公映</a></td>";
Matcher m = p.matcher(html);

String rs = new String(html);
// 找出所有html标记。
while (m.find()) {
System.out.println(m.group());
// 删除html标记。
rs = rs.replace(m.group(), "");
}
System.out.println("-----");
System.out.println(rs);
}


[b]方法二:匹配双字节字符(包括汉字在内):[^\x00-\xff][/b]
评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)

public void findContent2(){
// 匹配双字节字符(包括汉字在内)
Pattern p = Pattern.compile("[^\\x00-\\xff]");
String html = "<td><a target=\"_blank\" href=\"http://www.baidu.com/baidu?cl=3&tn=baidutop10&fr=top1000&wd=%A1%B6%CC%C6%C9%BD%B4%F3%B5%D8%D5%F0%A1%B7%B9%AB%D3%B3\">《唐山大地震》公映</a></td>";
Matcher m = p.matcher(html);

while (m.find()) {
System.out.print(m.group());
}
}


好了,以上是我提供的两种方法,希望对大家有些帮助,也希望大家提供更多更好的方法。

文章地址:[url]http://javapub.iteye.com/blog/719658[/url]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值