锁定老帖子 主题:Java解析HTML
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-11-29
节点解析是用遍历方式的,或者遍历时加个filter public static void printNode(NodeList nodelist) { for (int i = 0; nodelist != null && i < nodelist.size(); i++) { Node node = nodelist.elementAt(i); System.out.print(node.getText()); printNode(node.getChildren()); } } public static void main(String[] args) { try { Parser parser = new Parser(url); NodeList nodelist = parser.parse(null); //printNode(nodelist); NodeFilter filter = new TagNameFilter("tr"); NodeList list = nodelist.extractAllNodesThatMatch(filter, true); printNode(list); } catch (ParserException e) { e.printStackTrace(); } } 加入html中有 ... <div id=xxx> ... </div> ... 在js中,有getElementById(xxx)马上就能找到此div,但是java里貌似没有此现成的方法,难不成要一个个遍历,然后加if--then--else,那太累了。 http://www.open-open.com/30.htm 里面还有其他的parser,没一个个看 大家说说你们经历。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2010-11-29
貌似org.w3c.dom.有这样的方法
NodeList Document.getElementsByTagName(String tagname) ById()估计还是没 |
|
返回顶楼 | |
发表时间:2010-11-30
最后修改:2010-11-30
dom4j 支持 xpath
div[@id=123] |
|
返回顶楼 | |
发表时间:2010-11-30
jsoup
|
|
返回顶楼 | |
发表时间:2010-11-30
NekoHTML + HttpClient with xpath
只花一天就写成了一个配置型的方案,抓百万条产品信息入库 毫不费力... 感叹要防网络爬虫不容易... 顺便给个 防网络爬虫 比较成功的网站 www.icmaster.com 里面的产品信息 都是通过 存储code对应数据 -> ajax 获取的,POST请求参数 干扰项多 还有无意义的标签 干扰 xpath 当然,做了这么多东西还是照样抓... |
|
返回顶楼 | |
发表时间:2010-11-30
目前没有接触过需求需要专门去抓别人的东西。。但是以前面试写过一个抓信息的。。
当时就是抓javaeye。。我愚蠢的使用正则表达式抓。。看来比较麻烦啊。 xpath,我就怕他页面万一不规范,不能正常的操作了。 |
|
返回顶楼 | |
发表时间:2010-11-30
使用Tidy 把html转成xml,然后用dom4j 解析xml;
|
|
返回顶楼 | |
发表时间:2010-11-30
JSOUP谁用谁知道
|
|
返回顶楼 | |
发表时间:2010-11-30
先转成xml,再用xalan解析 支持xpath操作
|
|
返回顶楼 | |
发表时间:2010-11-30
恩,其实只要支持XPATH,剩下的事情就好办了...
|
|
返回顶楼 | |