- 浏览: 298737 次
- 性别:
- 来自: 杭州
博客专栏
-
Java面试
浏览量:0
文章分类
- 全部博客 (133)
- Struts2 (4)
- Hibernate (2)
- Spring (3)
- Java常识小积累 (18)
- Linux (6)
- Oscache (1)
- 面试技巧 (2)
- Eclipse (4)
- JavaScript (21)
- 生活 (7)
- Mysql (3)
- 网络优秀文章 (1)
- Freemaker (1)
- Tcp和UDP (1)
- ubuntu -java (1)
- Oracle (14)
- 重构 (1)
- webservice (4)
- Lucene (1)
- UML与OOA/D (1)
- 软件杂谈 (2)
- Nosql(Redis) (1)
- 团队开发 (1)
- Oracle 设计 (1)
- velocity (1)
- 面试那些事儿 (1)
- 技术 (1)
- 互联网 (1)
- 数据库 (1)
- jquery (1)
- java (2)
- fastjson (1)
- Remoting (1)
- 算法 (1)
- 学习技巧 (1)
- POI (3)
- FusionCharts (1)
- 学习资源 (1)
- 设计模式 (2)
- CSS (1)
- 技术边缘 (3)
- 生活感想 (0)
- JVM (1)
- JSON (0)
- 前端 (1)
- cxf (1)
- 分布式 (1)
- 阿萨德飞 (0)
- Java面试中的知识 (2)
- redis (1)
- 开发工具使用 (3)
最新评论
-
liushimiao0104:
请问下怎么删除word里面的图片呢
POI向word添加图片,表格 -
chpn:
addBatch确实可以1.这个和复合索引没得毛关系2.in查 ...
mysql 超1亿数据,优化分页查询 -
步青龙:
dagf113225 写道请问,这个mysql执行SQL的花费 ...
mysql 超1亿数据,优化分页查询 -
dagf113225:
请问,这个mysql执行SQL的花费的时间的工具叫什么?谢谢! ...
mysql 超1亿数据,优化分页查询 -
步青龙:
white_crucifix 写道我怎么觉得builder模式 ...
Builder设计模式
package com.util.md5; import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; import java.net.URL; import java.net.URLConnection; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import org.htmlparser.Node; import org.htmlparser.NodeFilter; import org.htmlparser.Parser; import org.htmlparser.tags.ImageTag; import org.htmlparser.tags.LinkTag; import org.htmlparser.util.NodeList; import org.htmlparser.util.ParserException; import com.sun.corba.se.spi.orbutil.fsm.State; /** * 用HTMLparser抓取img标签的路径 * @author Administrator token@token.com * @param content:要爬取的文本 * @return 返回SRC路径改为服务器路径的文本 * @throws Exception:io异常 */ public class Htmlparserutil { /** * example : new Htmlparserutil().parserto("<img src = 'www.baidu.com'/><a><a/>","D:\test"); * @param contentString 要取img标签的内容 * @param pathString 要存到服务器的路径 */ public static String parserto(String contentString,String pathString,String dispPath) { String stringBuffer=null; try { List list = new ArrayList(); Parser parser = Parser.createParser(contentString, "UTF-8"); NodeList nodeList = parser .extractAllNodesThatMatch(new NodeFilter() { public boolean accept(Node node) { if (node instanceof ImageTag)// <img>标记 return true; return false; } }); for (int i = 0; i < nodeList.size(); i++) { ImageTag n = (ImageTag) nodeList.elementAt(i); list.add(n.getImageURL()); int start = 0; start = n.getImageURL().lastIndexOf("/"); String picname=n.getImageURL().substring(start,n.getImageURL().length()); contentString=contentString.replace(n.getImageURL(), dispPath+picname); ///////////////????????? if(n.getImageURL().indexOf("http://e.huisou.com")==1){ contentString.replace("http://e.huisou.com","http://img.e.huisou.com"); } } List<String> listImg = new ArrayList<String>(); listImg.add(".jpg"); listImg.add(".JPG"); listImg.add(".jpeg"); listImg.add(".JPEG"); listImg.add(".bmp"); listImg.add(".BMP"); listImg.add(".gif"); listImg.add(".GIF"); listImg.add(".png"); listImg.add(".PNG"); Iterator ite = list.iterator(); while (ite.hasNext()) { String content = (String) ite.next(); for (int i = 0; i < listImg.size(); i++) { if (content.contains(listImg.get(i))) { content = content.substring(0, content.indexOf(listImg .get(i)) + listImg.get(i).length()); } } URL u = new URL(content); URLConnection uc = u.openConnection(); InputStream in = uc.getInputStream(); String name = content.substring(content.lastIndexOf("/") + 1, content.length()); OutputStream out = new FileOutputStream(pathString + name); byte[] buffer = new byte[1024]; while (in.read(buffer) > 0) { out.write(buffer); } out.flush(); out.close(); in.close(); } } catch (Exception e) { } return contentString; } /** * 替换文本标签迭代 * @param contentString * @return * @throws ParserException */ public static String parserto(String contentString) throws ParserException { try { Parser parser = Parser.createParser(contentString, "UTF-8"); NodeList nodeList = parser .extractAllNodesThatMatch(new NodeFilter() { public boolean accept(Node node) { if (node instanceof LinkTag)// return true; return false; } }); for (int i = 0; i < nodeList.size(); i++) { LinkTag n = (LinkTag) nodeList.elementAt(i); // contentString=contentString.replace(n.toHtml().toString(),n.getLinkText()); } } catch (Exception e) { } return contentString; } public static String updateurl(String contentString) { Parser parser = Parser.createParser(contentString, "UTF-8"); NodeList nodeList = null; try { nodeList = parser .extractAllNodesThatMatch(new NodeFilter() { public boolean accept(Node node) { if (node instanceof ImageTag) return true; return false; } }); } catch (ParserException e) { e.printStackTrace(); } for (int i = 0; i < nodeList.size(); i++) { ImageTag n = (ImageTag) nodeList.elementAt(i); if (n.getImageURL().indexOf("http://e.huisou.com")==1) { System.out.println("start"); contentString=contentString.replace(n.getImageURL().substring("http://e.huisou.com".length()),"http://img.e.huisou.com"); System.out.println("end"); }else{ System.out.println("为找到外网的图片"); } } return contentString; } }
发表评论
文章已被作者锁定,不允许评论。
-
双色球数据抓入Mysql
2013-04-12 18:45 17341 mysql5.1 创建表 -- 创建表 id,开 ... -
从零学Java-Java简介
2013-02-28 15:06 27Java的发展史可百度获得 从零学 ... -
疑难杂症-itext 横纵混编
2013-02-26 16:20 1341POI在word处理写的能力很差,所以不适合生成复杂 ... -
itext对word处理合并单元格,处理图片,文档结构图
2013-01-18 16:29 7856效果: 代码: package com.aa ... -
Java与Javascript 最近值
2013-01-16 14:55 1778Double price = 19.0000; ... -
Java数学运算中 电脑计算和人的思维模式的差别
2012-12-13 15:31 8大多数情况下还是人的思维模式下的运算要快点。 怪状1: ... -
重构的重要性大于架构
2012-12-01 20:58 1734此文仅仅是个人理解。 架构和重构从本质上讲 ... -
Excel 参照列并单元格算法
2012-08-28 10:02 1070题目需要做的有2个功能 1 根据一个字符串数组 求出连续且相 ... -
Java基础误区
2012-08-12 01:36 9941 import java.util.Date; ... -
BigDecimal
2012-07-02 14:37 1114BigDecimal a = new BigDec ... -
朝花夕拾,Java基础回顾
2011-11-15 09:48 1158byte 在编译的时候最大可以多大?为什么? 为什么成员变量 ... -
ubuntu安装java
2011-07-04 04:23 13641:下载jdk ,比如:jdk-6u26-linux-i586 ... -
TCP和UDP
2011-07-01 16:43 1181TCP: Server端 try { Serve ... -
面试-编程-质数
2011-06-22 02:15 1152第一种算法 public static boolea ... -
Refecting in Java
2011-06-02 11:33 1176反射这个东西项目中会用到,如果我有一个Navigatio ... -
博客设计
2011-03-11 12:02 1294设计一个可以承受大访问量的博客表,Mysql数据库。 ... -
静态内部类-静态变量-非静态内部类之间的访问权限
2011-01-10 16:27 34public class Test { //注意静态 ... -
代码规范约定
2010-12-17 10:34 32处理变量,方法,类的命名之外 1必要 ... -
Java基础特殊应用
2010-11-25 16:11 1461古老的代码,java代替goto,代码没有实际的意 ... -
地址图片上传服务器
2010-11-17 14:12 561: 普通的地址图片上传,只能上传普通的地址一般是后缀jpg, ...
相关推荐
它广泛应用于搜索引擎优化、数据分析、市场研究等多个领域。 在Python中,HTMLParser是内置的HTML解析器,它允许开发者编写自定义的事件驱动的解析器来处理HTML或XML文档。使用HTMLParser,我们可以解析网页内容,...
本项目名为"HTMLParser.net源代码HTMLParser.net使用demo",显然是一个包含示例代码的压缩包,用于展示如何在实际应用中使用HTMLParser.net。 HTMLParser.net的核心功能包括: 1. **HTML解析**:它能够将HTML字符...
HTMLParser提供了多种方法来访问和操作解析树,比如`parseContent()`用于获取整个文档的节点列表,`visitAllNodesWith()`可以遍历所有节点并应用自定义的访问器,`getFirstNodeWithTag()`用于找到第一个特定标签的...
HtmlParser在多种场景下都有广泛的应用: 1. **数据抓取**:从网页中抓取特定信息,如产品价格、评论内容等。 2. **网页自动化**:用于自动填写表单、点击按钮等操作,实现网页自动化测试。 3. **内容过滤**:清理...
5. 应用场景:HTMLParser适用于数据抓取、网页自动化测试、内容过滤等多种场景。比如,你可以使用它来提取网页上的特定数据,如价格、评论、链接等;也可以用于验证网页的结构是否符合预期,或者在不影响页面展示的...
实际应用中,HTMLParser常与网络请求库(如Apache HttpClient或OkHttp)结合使用,以获取远程网页内容,再进行后续的解析操作。同时,为了提高代码的可维护性和复用性,建议封装自己的数据抓取和处理模块。
本文将深入探讨HTMLParser 1.6版本的功能、用途、使用方法以及其在IT领域的应用。 HTMLParser的核心功能是解析HTML文档,即使在面对结构不规则或者非标准的HTML代码时,也能有效地进行解析。它提供了灵活的事件驱动...
9. **编译与构建输出**:`.settings`目录存储了项目的特定构建设置,而`bin`目录通常包含由编译器生成的字节码文件(.class),这是Java应用程序运行所需的。 10. **示例文件(如delete_me.html)**:这个文件可能...
在实际应用中,HTMLParser通常与其他技术结合使用,例如与网络请求库(如Apache HttpClient或OkHttp)配合,从远程服务器获取HTML内容;或者与数据存储库(如MySQL、MongoDB)集成,将解析后的数据保存到数据库中。...
HtmlParser常用于网页抓取、数据分析、自动化测试等领域,如爬虫程序提取网页信息、Web应用程序验证HTML输入的有效性等。 9. **与其他库的比较** 相比于Jsoup等其他HTML解析库,HtmlParser更注重灵活性和低级控制...
**HtmlParser2003应用详解** 在网页信息抓取和处理领域,`HtmlParser2003`是一个重要的工具,它专为解析HTML代码设计,帮助用户从网页中提取所需的数据。本篇将深入探讨`HtmlParser2003`的原理、使用方法以及在实际...
总的来说,HTMLParser是一个强大且灵活的工具,适用于需要解析和操作HTML的Java应用,如爬虫、数据提取、网页自动化等场景。通过理解这两个jar包的功能和交互,我们可以有效地利用HTMLParser来处理复杂的HTML解析...
在实际应用中,你可能需要将HTMLParser用于以下场景: - **数据抓取**:从网页中提取结构化信息,例如产品价格、评论、联系方式等。 - **内容清理**:去除HTML中的广告、脚本等不必要内容,以准备进行进一步的处理...
`HTMLParser-2[1].0-API.CHM`文件是HTMLParser2.0的API参考手册,它包含了详细的API文档,为开发者提供了如何使用这个库的指南。通过这个手册,开发者可以学习如何创建解析器实例,设置解析选项,注册事件处理器,...
此外,HTMLParser 还使用到了几种好的设计模式,应用恰到好处,值得学习和借鉴。 下面是一个简单的 HTMLParser 使用举例: ```java package com.amigo.htmlparser; import java.io.*; import java.net.URL; ...
下面将详细阐述Winista.HtmlParser的相关知识点。 1. **HTML解析原理**: HTML解析器的工作原理是对HTML源码进行分析,识别出标签、属性、文本等内容。Winista.HtmlParser可能采用了基于DOM(文档对象模型)或SAX...
《C# HTMLParser详解及其应用》 在编程领域,处理HTML文档是一项常见的任务,尤其是在Web开发中。C#作为微软推出的面向对象的编程语言,拥有丰富的库和工具来支持这项工作。本文将深入探讨C#中的HTMLParser,以及...
此外,它还支持XML和SGML,扩展了其应用范围。 在提供的压缩文件中,有两个版本: - `htmlparser1_6_20060610.zip`:这是HTMLParser的一个较早版本,发布于2006年6月10日。它可能包含旧版API和特性,对于需要兼容...
### JAVA HtmlParser 使用实例详解 在Java开发过程中,解析HTML文档是一项常见的需求,尤其是在处理Web爬虫、数据抓取等应用场景时。`HtmlParser`库为开发者提供了一种简便的方式来解析HTML文档,并从中提取所需的...