- 浏览: 312146 次
- 性别:
- 来自: 青岛
文章分类
- 全部博客 (140)
- 技术笔记 (3)
- Dwr (1)
- 日常使用技巧 (11)
- eclipse使用技巧 (3)
- jxl使用技巧 (3)
- Struts2 (7)
- java 报表 (3)
- Webservices (2)
- Flex (15)
- vc,vc++ (11)
- Spring (6)
- j2me开发 (1)
- Java (27)
- Sql (11)
- Javascript (5)
- extjs (0)
- C# (8)
- jQuery (2)
- PHP (3)
- apache (4)
- sso单点登录 (1)
- linux (6)
- cisco vpn (1)
- android (1)
- MongoDB性能优化 (1)
- nosql (1)
- Java netbeans (1)
- js (1)
最新评论
-
jinyanhui2008:
hzq20100521 写道你好,我的需求这个有点不一样,我的 ...
spring 多数据库支持,动态切换数据库 -
hzq20100521:
你好,我的需求这个有点不一样,我的是系统启动的时候是连接的默认 ...
spring 多数据库支持,动态切换数据库 -
lbxhappy:
那如果tree.first()一开始就是最大的呢?是不是以后e ...
从bbs中看到的问题:从大量数据中取top100,整理的思路 -
programwyh:
jinyanhui2008 写道programwyh 写道我用 ...
使用jasperreports制作报表(导出pdf excel html) -
jinyanhui2008:
programwyh 写道我用java程序写的运用Jasper ...
使用jasperreports制作报表(导出pdf excel html)
一. 简介
htmlparser用于 对html页面进行解析,它是一个功能比较强大的工具。
项目首页:http://htmlparser.sourceforge.net/
下载地址:http://sourceforge.net/project/showfiles.php?group_id=24399
二. 使用举例
下面通过一个简单的htmlparser的使用举例,来学习htmlparser的使用。代码如下:
package com.amigo.htmlparser; import java.io.*; import java.net.URL; import java.net.URLConnection; import org.htmlparser.filters.*; import org.htmlparser.*; import org.htmlparser.nodes.*; import org.htmlparser.tags.*; import org.htmlparser.util.*; import org.htmlparser.visitors.*; public class HTMLParserTest { /** *//** * 入口方法. * @param args * @throws Exception */ public static void main(String args[]) throws Exception { String path = "http://qdjinxin.iteye.com"; URL url = new URL(path); URLConnection conn = url.openConnection(); conn.setDoOutput(true); InputStream inputStream = conn.getInputStream(); InputStreamReader isr = new InputStreamReader(inputStream, "utf8"); StringBuffer sb = new StringBuffer(); BufferedReader in = new BufferedReader(isr); String inputLine; while ((inputLine = in.readLine()) != null) { sb.append(inputLine); sb.append("\n"); } String result = sb.toString(); readByHtml(result); readTextAndLinkAndTitle(result); } /** *//** * 按页面方式处理.解析标准的html页面 * @param content 网页的内容 * @throws Exception */ public static void readByHtml(String content) throws Exception { Parser myParser; myParser = Parser.createParser(content, "utf8"); HtmlPage visitor = new HtmlPage(myParser); myParser.visitAllNodesWith(visitor); String textInPage = visitor.getTitle(); System.out.println(textInPage); NodeList nodelist; nodelist = visitor.getBody(); System.out.print(nodelist.asString().trim()); } /** *//** * 分别读纯文本和链接. * @param result 网页的内容 * @throws Exception */ public static void readTextAndLinkAndTitle(String result) throws Exception { Parser parser; NodeList nodelist; parser = Parser.createParser(result, "utf8"); NodeFilter textFilter = new NodeClassFilter(TextNode.class); NodeFilter linkFilter = new NodeClassFilter(LinkTag.class); NodeFilter titleFilter = new NodeClassFilter(TitleTag.class); OrFilter lastFilter = new OrFilter(); lastFilter.setPredicates(new NodeFilter[] { textFilter, linkFilter, titleFilter }); nodelist = parser.parse(lastFilter); Node[] nodes = nodelist.toNodeArray(); String line = ""; for (int i = 0; i < nodes.length; i++) { Node node = nodes[i]; if (node instanceof TextNode) { TextNode textnode = (TextNode) node; line = textnode.getText(); } else if (node instanceof LinkTag) { LinkTag link = (LinkTag) node; line = link.getLink(); } else if (node instanceof TitleTag) { TitleTag titlenode = (TitleTag) node; line = titlenode.getTitle(); } if (isTrimEmpty(line)) continue; System.out.println(line); } } /** *//** * 去掉左右空格后字符串是否为空 */ 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; } } }
发表评论
-
常见NIO开源框架(MINA、xSocket)学习 (转自javaeye博客)
2012-11-09 15:07 7402http://unbounder.iteye.com/blog ... -
解决 PermGen space Tomcat内存设置
2011-05-10 15:30 2078在操作一段时间就会出现 java.lang.OutOfMemo ... -
proxool 多数据源动态切换,刚刚一网友问我,顺便写的一个demo
2010-09-27 17:39 2227package aa; import java.io.F ... -
(转)sql批量执行效率对比
2010-05-24 18:10 3092环境: MySQL 5.1 RedHat L ... -
转自CSDN以作备份,使用java获取文档的编码格式
2010-05-24 09:57 1195package com.util.mail; import ... -
从bbs中看到的问题:从大量数据中取top100,整理的思路
2010-04-01 14:13 1488TreeSet算法很强悍,以后一定要记得使用 p ... -
Eclipse导出JavaDoc中文乱码问题解决
2010-03-09 10:38 969给 javadoc.exe 加上编码参数就OK。 ... -
搞懂java中的synchronized关键字
2009-12-18 14:38 962实际上,我关于java的基础知识的90%以上都来自Thinki ... -
JDialog 居中 方法二同样适合jFrame
2009-11-18 11:55 2776方法一调用JDialog的public void setLoc ... -
如果查询数据的时候报内存溢出咋办?
2009-10-30 10:45 1320前两天搞了个程序,需要一次性导出大量数据,在执行select的 ... -
关于java堆栈溢出的那些事
2009-08-31 09:47 2835java.lang.OutOfMemoryError: Jav ... -
手工将tomcat安装为服务及tomcat命令说明
2009-06-09 09:04 1729最近做了一个项目需要将tomcat和产品功能 ... -
Java 读取 INI 文件的示例
2009-05-19 18:15 1201package com.wfy.util; import ... -
java数据流压缩
2009-05-14 17:53 3566package com.wfy.util; import ... -
用java发送邮件
2009-05-13 13:33 1391<%@page contentType="te ... -
java窗口最小化到任务栏
2009-05-07 11:46 4110import java.awt.AWTException; ... -
Java 读/写文件文本文件的示例
2009-04-24 08:38 1059/* * 简单的读/写文本 ... -
java读写消息资源文件
2009-04-23 15:46 1634package com.lwf.util; import ... -
如果 点击子窗口父窗口也随之关闭 请看
2009-04-23 13:11 1874如果点击子窗口关闭按钮,父窗口也关闭了,可能是设置的问题 ... -
读取资源文件的N种方法- -
2009-04-23 09:37 1161如何读取资源文件:(一)Properties props = ...
相关推荐
网络爬虫HTMLParser使用举例,实际例子让你轻松掌握HTMLParser
htmlparser 使用指南 入门 必读htmlparser 使用指南 入门 必读htmlparser 使用指南 入门 必读htmlparser 使用指南 入门 必读
JAVA htmlparser 使用实例
Java正则表达式入门 + HTMLParser使用详解 Java正则表达式入门 + HTMLParser使用详解 Java正则表达式入门 + HTMLParser使用详解 Java正则表达式入门 + HTMLParser使用详解
HTMLParser使用详解.doc HTMLParser使用详解.doc HTMLParser使用详解.doc
HTMLParser使用文档和jar包
用Winista.HTMLParser的小实例,内涵源代码和所用dll及HTMLParser使用文档,word含有代码编写全过程
网络爬虫 HTMLParser 使用指南 , 非常适合做网络抓取资源的开发者,经典之作
HTMLParser使用详解
Java正则表达式入门 + HTMLParser使用详解.ppt
HTMLParser具有小巧,快速的优点,缺点是相关文档比较少(英文的也少),很多功能需要自己摸索。对于初学者还是要费一些功夫的,而一旦上手以后,会发现HTMLParser的结构设计很巧妙,非常实用,基本你的各种需求都...
关于正则表达式和HTMLParser使用的详细说明 希望对大家有用
htmlparser的使用指南 htmlparser使用指南.doc
很不错,也很全面的HTML 解析类库,还有例题。
HTMLParser.net源代码HTMLParser.net使用demo
HTMLParser具有小巧,快速的优点,缺点是相关文档比较少(英文的也少),很多功能需要自己摸索。对于初学者还是要费一些功夫的,而一旦上手以后,会发现HTMLParser的结构设计很巧妙,非常实用,基本你的各种需求都...