`
longware
  • 浏览: 163058 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Java解析HTML

    博客分类:
  • Java
阅读更多
看了下,有很多parser,没有一个个看,下了个http://sourceforge.net/projects/htmlparser/files/

节点解析是用遍历方式的,或者遍历时加个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,没一个个看

大家说说你们经历。
分享到:
评论
24 楼 lqixv 2010-12-23  
ahitbo 写道
qiren83 写道
illu 写道
nurenok 写道
JSOUP谁用谁知道

+1

++1

+++1

++++1
23 楼 wmcoo 2010-12-03  
在线采集,还没完工的JAVA版
http://qidiansoso.appspot.com/
22 楼 longware 2010-12-02  
johnson.lee 写道
我是自己写的HTML Parser,采用SAX方式, HTMLParser通知Handler来处理SAX事件,附件中的源代码是为Eclipse HTML编辑器插件的写的Parser,在解析HTML的过程中做了些额外的处理.自我感觉写得不算太好,不过和大家分享一下也无妨.



谢谢分享
21 楼 johnson.lee 2010-12-02  
我是自己写的HTML Parser,采用SAX方式, HTMLParser通知Handler来处理SAX事件,附件中的源代码是为Eclipse HTML编辑器插件的写的Parser,在解析HTML的过程中做了些额外的处理.自我感觉写得不算太好,不过和大家分享一下也无妨.
20 楼 longware 2010-12-01  
nighthawk 写道
看来大家都有“拿来主义”的需求。
不仅扣人家页面风格,连内容也要抓。



~~~~~景德镇特色啊~~~~~~
19 楼 nighthawk 2010-12-01  
看来大家都有“拿来主义”的需求。
不仅扣人家页面风格,连内容也要抓。
18 楼 longware 2010-12-01  
谢谢讨论,我试试dom4j 、 jsoup 、 xalan 、NekoHTML+HttpClient with xpath
17 楼 longware 2010-12-01  
aoliwen521 写道
目前没有接触过需求需要专门去抓别人的东西。。但是以前面试写过一个抓信息的。。
当时就是抓javaeye。。我愚蠢的使用正则表达式抓。。看来比较麻烦啊。
xpath,我就怕他页面万一不规范,不能正常的操作了。


正则很累人的
16 楼 dengzhangtao 2010-12-01  
抛出异常的爱 写道
dom4j 支持 xpath
div[@id=123]

恩 用dom4j处理节点
15 楼 ahitbo 2010-12-01  
qiren83 写道
illu 写道
nurenok 写道
JSOUP谁用谁知道

+1

++1

+++1
14 楼 noobjava 2010-12-01  
qiren83 写道
illu 写道
nurenok 写道
JSOUP谁用谁知道

+1

++1

有空打算写写jsoup的中文的一些东西,这玩意我从0.3.1开始用,最近发现已经更新的若干个版本了。
我觉得在jsoup面前,htmlparser还是比较难用的,方便易用性上与jsoup不是一个级别。

但有一个小前提,就是你用过jquery,了解jquery的一些语法,那就会瞬间上手了,
不了解也没关系,因为学起来也比较简单,能看懂它的英文文档基本上很快就学会了,

一句话,实在太好用了
13 楼 qiren83 2010-11-30  
illu 写道
nurenok 写道
JSOUP谁用谁知道

+1

++1
12 楼 flyingzl 2010-11-30  
如果没有记错,一个叫做jsoup的html解析器,速度非常快。类似于python中的BeautifulSoup
11 楼 lovemylover 2010-11-30  
htmlparser很好用,基本就相当于DOM遍历,至于想要其他更好的效果,就自己封装吧
10 楼 illu 2010-11-30  
nurenok 写道
JSOUP谁用谁知道

+1
9 楼 aabcc 2010-11-30  
恩,其实只要支持XPATH,剩下的事情就好办了...
8 楼 zhangcong170 2010-11-30  
先转成xml,再用xalan解析  支持xpath操作
7 楼 nurenok 2010-11-30  
JSOUP谁用谁知道
6 楼 小小流浪猪 2010-11-30  
使用Tidy 把html转成xml,然后用dom4j 解析xml;
5 楼 aoliwen521 2010-11-30  
目前没有接触过需求需要专门去抓别人的东西。。但是以前面试写过一个抓信息的。。
当时就是抓javaeye。。我愚蠢的使用正则表达式抓。。看来比较麻烦啊。
xpath,我就怕他页面万一不规范,不能正常的操作了。

相关推荐

    java 解析 html

    在这个场景下,我们讨论的是如何利用Java解析HTML以获取特定标签路径下的内容,例如`html/body/div/div/`。 首先,我们需要一个强大的库来解析HTML,如Jsoup。Jsoup是一个用于处理实际世界HTML的Java库,它提供了一...

    java解析html

    Java 解析 HTML 主要涉及到的是如何在 Java 程序中处理 HTML 文档,以便提取、操作或分析其中的数据。这通常需要借助于特定的库和工具。在给定的描述中提到了一个博客链接,但无法直接访问,因此我将提供一个通用的...

    java解析html抓取网站数据采集网站信息

    总之,Java解析HTML抓取网站数据采集是一项涉及网络通信、HTML解析、数据处理等多个技术领域的任务。通过熟练掌握相关工具和技巧,我们可以高效地从互联网获取大量有价值的信息。在实践中,务必遵循合法、合规的原则...

    java解析html工具htmlparser的jar包及api文档

    HTMLParser是一个Java库,专为解析HTML而设计。它提供了对HTML文档的解析能力,使得开发者可以方便地处理网页内容,提取有用的信息或者进行数据抓取。这个工具在IT行业中,尤其是在Web开发和数据处理领域,有着广泛...

    Java解析HTML之NekoHTML

    在IT行业中,HTML(HyperText Markup Language)是用于创建网页的标准标记语言,而Java作为一种强大的后端编程语言,经常被用来处理和解析HTML文档。在Java中解析HTML时,一个常用的库是NekoHTML,它是一个开源项目...

    jsoup java解析html

    解析HTML文档 JSoup能够解析来自网络或本地文件系统的HTML文档,将其转化为一个可操作的`org.jsoup.nodes.Document`对象。这个对象就像一个完整的DOM树,你可以通过这个树来遍历和修改HTML结构。 ```java import ...

    Java中解析html的开源项目04

    在这个"Java中解析html的开源项目04"部分,我们将深入探讨HTMLParser库的功能、用法以及如何在实际项目中应用。 HTMLParser库主要由Java编写,它能够解析HTML文档并将其转换为易于操作的结构,如DOM树或事件驱动的...

    Java HTML解析类

    纯Java写的html解析类,解析为自上而下顺序解析。解析效率一般,不支持js,可以满足日常使用。

    java 解析 chm 文件

    Java解析CHM文件是将Microsoft的 Compiled HTML Help (CHM) 文件转换成HTML网页的过程。CHM文件是一种常见的帮助文档格式,它包含了多个HTML页面、图像和其他资源,并使用了一种特殊的压缩方法存储。在Java中处理CHM...

    java html解析

    java的 html解析工具,使用时直接将包添加到工程即可

    java解析DWG文件为json使用superMap

    【标题】:“java解析DWG文件为json使用superMap” 【描述】:“java使用superMap解析DWG文件为json输出,本地通过,附件中为word操方式按照步骤可以导入数据集” 【标签】:“java解析DWG文件json java读取dwg...

    Java正则表达式详解+基于HTMLParser解析HTML网页

    如何在Java程序中利用正则表达式实现对字符串的解析.另外,HTMLParser是一款很强大的对HTML网页进行解析的工具,其中大量地用到正则表达式.

    java对mht文件解析

    1. **DOMFragmentParser**:这是一个自定义的解析器类,用于解析HTML片段并构建DOM树。 2. **IOUtils**:Apache Commons IO库提供了一系列处理输入/输出流的方法,便于文件读写操作。 3. **Quoted-Printable解码**:...

    HTML解析框架 Jsoup

    jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。

    基于Java的实例开发源码-HTML文档解析器 HTMLParser.zip

    4. **使用Java解析HTML的优点**:Java作为一种跨平台的语言,有着丰富的库支持和强大的社区。使用Java编写HTML解析器可以确保代码的可移植性,并且能够利用Java的异常处理机制,提高程序的健壮性。 5. **实例开发**...

    java实现HTML解析图片批量下载

    总之,通过使用Jsoup,我们可以轻松地解析HTML文档,找到所有的图片链接,并使用Java的网络和文件I/O功能将它们下载到本地。这个项目不仅可以作为学习Java网络编程和HTML解析的实践,还可以应用于各种实际场景,例如...

    EPUB 解析 (java)

    Java解析模块会将这些内容解压、提取,并可能进行进一步的处理,如图像的重命名和移动,以适应不同的设备和阅读环境。 在FBreader的优化版本中,可能包括了性能提升、内存管理优化、错误修复或新特性添加。例如,...

    使用Java编程解析HTML文档

    ### 使用Java编程解析HTML文档 #### 一、引言 随着互联网的发展,解析HTML文档的需求日益增加。无论是搜索引擎还是各种在线应用,都需要高效地提取HTML文档中的信息。Java作为一种广泛使用的编程语言,提供了多种...

    java解析chm

    Java解析CHM(Compiled Help Manual)文件是一种技术,主要用于处理微软Windows系统中常见的帮助文档格式。CHM文件是由HTML页面和其他资源压缩而成的,通常包含索引、目录和搜索功能。`chm4j`是一个Java库,专门设计...

    html解析工具

    java实现对html解析,实现通过id,class等tag进行解析。

Global site tag (gtag.js) - Google Analytics