地狱男爵之博客无限
BlogJava
首页
新随笔
联系
聚合
管理
posts - 33, comments - 70, trackbacks - 0
HTMLParser属性解析
HTMLParser 1.6
/*
html : html内容
identifier: 搜索标识
*/
private
Object[] extractText(String html, String identifier)
throws
Exception
{
List
<
String
>
resultTextList
=
new
ArrayList
<
String
>
();
Parser parser
=
new
Parser();
parser.setInputHTML(html);
NodeFilter filter
=
new
HasAttributeFilter(
"
class
"
, identifier);
/* NodeFilter filter 就是要解析的过滤器,实现有好多种,我采用的属性过滤,其他more api*/
NodeList nodeList
=
parser.extractAllNodesThatMatch(filter);
/*
extractAllNodesThatAre(class)已经不被推荐使用,在1.6版本中,我感到更加体形了灵活性.更好的适用了自定义的tag
*/
if
(nodeList
==
null
)
return
null
;
if
(nodeList.size()
==
0
)
return
null
;
//
System.out.println("start ============== ,size = "
//
+ nodeList.size());
Node[] nodes
=
nodeList.toNodeArray();
String line
=
""
;
for
(
int
i
=
0
; i
<
nodes.length; i
++
)
{
Node node
=
nodes[i]; /*得到所以符合的节点,类型化做对应的标签类*/
if
(node
instanceof
Span)
{
Span spanTag
=
(Span) node;
line
=
spanTag.toPlainTextString();
}
else
if
(node
instanceof
TableColumn)
{
TableColumn tableTag
=
(TableColumn) node;
line
=
tableTag.toPlainTextString();
}
else
if
(node
instanceof
Div)
{
Div divTag
=
(Div) node;
line
=
divTag.toPlainTextString();
}
if
(StringUtil.isTrimEmpty(line))
{
continue
;
}
else
{
resultTextList.add(line);
}
}
return
resultTextList.toArray();
}
StringUtil 常用类
/** */
/**
* 去掉左右空格后字符串是否为空
*/
public
static
boolean
isTrimEmpty(String astr)
{
if
((
null
==
astr)
||
(astr.length()
==
0
))
{
return
true
;
}
if
(isBlank(astr.trim()))
{
return
true
;
}
return
false
;
}
/** */
/**
* 字符串是否为空:null或者长度为0.
*/
public
static
boolean
isBlank(String astr)
{
if
((
null
==
astr)
||
(astr.length()
==
0
))
{
return
true
;
}
else
{
return
false
;
}
}
posted on 2006-05-22 17:30
地狱男爵(hellboys)
阅读(2869)
评论(1)
编辑
收藏
所属分类:
编程语言(c/c++ java python sql ......)
FeedBack:
#
re: HTMLParser属性解析
2006-06-02 21:45 |
libby
想请教作者,可能是由于html的语法不规范所至,我用Htmlparser分析html文档出现错误,像普通的Html文档其结束标记如果存在重复,一般不予理睬,可是在用Htmlparser其会进行处理,往往会引起一些显示问题.
我想利用htmlparser分析html页面,生成一棵树,感觉不应该出现的错误却出现了.
作者可否跟俺取得联系,我想同你讨论一下.俺邮箱是:libby22@sohu.com或者MSN:libby22@hotmail.com
着急,谢谢!
回复
更多评论
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
知识库
C++博客
博问
管理
相关文章:
优化MySQL数据库性能的八种方法
ActiveMQ4.1 +Spring2.0的POJO JMS方案 扩展,以更加实用(基于ss).二
ActiveMQ4.1 +Spring2.0的POJO JMS方案 扩展,以更加实用(基于ss)
compass 中使用annatation 简化配置
Compass - springside 中的应用
HTMLParser属性解析
使用Lucene建立自己的搜索引擎初步(转)
<
2006年5月
>
日
一
二
三
四
五
六
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
常用链接
我的随笔
我的评论
我的参与
最新评论
随笔分类
bash
vim(1)
系统综合(12)
编程语言(c/c++ java python sql ......)(7)
随笔(6)
随笔档案
2010年11月 (1)
2009年3月 (2)
2008年12月 (1)
2008年11月 (1)
2008年6月 (1)
2007年12月 (1)
2007年11月 (1)
2007年4月 (2)
2007年3月 (1)
2006年11月 (1)
2006年10月 (1)
2006年9月 (2)
2006年8月 (1)
2006年7月 (2)
2006年6月 (6)
2006年5月 (3)
2006年4月 (5)
2006年3月 (1)
文章档案
2005年12月 (1)
相册
SARA--以后LP的标准?
恍惚的美丽(2007年的五一)
连接
差沙
我以前blog地址
聪明的猪(cleverpig)
最新随笔
1. Open MacVim tabs from command-line
2. 优化MySQL数据库性能的八种方法
3. Hadoop分布式文件系统(HDFS)的安全隐患
4. sssh v2.0 - 快速 ssh 登陆脚本
5. mod_python在 RHEL/CentOs 64 位编译上的问题
6. 我想应聘中国男子国家足球队主教练一职
7. Android中文文档v0.1 beta低调发布,期待更多同学来参加review
8. 欢迎访问Android中国
9. ActiveMQ4.1 +Spring2.0的POJO JMS方案 扩展,以更加实用(基于ss).二
10. ActiveMQ4.1 +Spring2.0的POJO JMS方案 扩展,以更加实用(基于ss)
搜索
最新评论
1. re: Mysql 集群简介和配置[未登录]
@dustin
动不动就说不稳定,人家岛国的有个很大很大的社交网站就是这么搞的。你有啥子证据说不稳定,服了你。
--菜鸟
2. re: 约瑟夫环算法(循环链表解决)
评论内容较长,点击标题查看
--527055685@qq.com
3. re: 约瑟夫环算法(循环链表解决)[未登录]
@huchuhan
看不懂
!
--Sky
4. re: Mysql 集群简介和配置
评论内容较长,点击标题查看
--tmeper
5. re: 约瑟夫环算法(循环链表解决)
哥们啥是链表?
--huchuhan
阅读排行榜
1. Mysql 集群简介和配置(61948)
2. 约瑟夫环算法(循环链表解决)(13318)
3. 妙解网络多台dhcp引起的IP冲突 (5862)
4. Compass - springside 中的应用(5403)
5. mod_python在 RHEL/CentOs 64 位编译上的问题(3637)
评论排行榜
1. 约瑟夫环算法(循环链表解决)(19)
2. Compass - springside 中的应用(18)
3. Mysql 集群简介和配置(7)
4. 不要一辈子靠技术生存(7)
5. 我想应聘中国男子国家足球队主教练一职(5)