- 浏览: 5833414 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (890)
- WindowsPhone (0)
- android (88)
- android快速迭代 (17)
- android基础 (34)
- android进阶 (172)
- android高级 (0)
- android拾遗 (85)
- android动画&效果 (68)
- Material Design (13)
- LUA (5)
- j2me (32)
- jQuery (39)
- spring (26)
- hibernate (20)
- struts (26)
- tomcat (9)
- javascript+css+html (62)
- jsp+servlet+javabean (14)
- java (37)
- velocity+FCKeditor (13)
- linux+批处理 (9)
- mysql (19)
- MyEclipse (9)
- ajax (7)
- wap (8)
- j2ee+apache (24)
- 其他 (13)
- phonegap (35)
最新评论
-
Memories_NC:
本地lua脚本终于执行成功了,虽然不是通过redis
java中调用lua脚本语言1 -
ZHOU452840622:
大神://处理返回的接收状态 这个好像没有监听到 遇 ...
android 发送短信的两种方式 -
PXY:
拦截部分地址,怎么写的for(int i=0;i<lis ...
判断是否登录的拦截器SessionFilter -
maotou1988:
Android控件之带清空按钮(功能)的AutoComplet ...
自定义AutoCompleteTextView -
yangmaolinpl:
希望有表例子更好。。。,不过也看明白了。
浅谈onInterceptTouchEvent、onTouchEvent与onTouch
该类并不是一个通用的工具类,需要按自己的要求实现,这里只记录了Htmlparse.jar包的一些用法。仅此而已!
详细看这里:http://gundumw100.iteye.com/blog/704311
在这里http://gundumw100.iteye.com/blog/702521的WebClient类就是!
详细看这里:http://gundumw100.iteye.com/blog/704311
import java.util.*; import org.htmlparser.Node; import org.htmlparser.NodeFilter; import org.htmlparser.Parser; import org.htmlparser.filters.AndFilter; import org.htmlparser.filters.HasAttributeFilter; import org.htmlparser.filters.NodeClassFilter; import org.htmlparser.filters.TagNameFilter; import org.htmlparser.tags.BodyTag; import org.htmlparser.tags.LinkTag; import org.htmlparser.util.NodeList; import org.htmlparser.util.ParserException; /** * httpclient与htmlparse对网页的解析 * * @author Administrator * */ public class HtmlparseUtil { WebHttpClient util=new WebHttpClient(); /** * 获得网页中的超链接,将href和text保存在Map中:map(href,text) * @param url * @param charset * @return */ public Map<String, String> linkGet(String url, String charset) { String content=util.getWebContentByGet(url,charset); Map<String, String> linkMap = new HashMap<String, String>(); try { //开始解析 Parser parser = Parser.createParser(content, charset); // 过滤出<a></a>标签 NodeFilter linkFilter = new NodeClassFilter(LinkTag.class); NodeList list = parser.extractAllNodesThatMatch(linkFilter); Node node = null; for (int i = 0; i < list.size(); i++) { node = list.elementAt(i); // 获得网页中的链接map(href,text) linkMap.put(((LinkTag) node).getLink(), this.processText(((LinkTag) node).getLinkText())); } } catch (ParserException e) { e.printStackTrace(); } return linkMap; } /** * 获得网页<body></body>标签中的内容, 保存在body中 * @param url * @param charset * @return */ public String bodyGet(String url, String charset) { String content=util.getWebContentByGet(url,charset); String body = ""; try { Parser parser = Parser.createParser(content, charset); // 过滤<body></body>标签 NodeFilter bodyFilter = new NodeClassFilter(BodyTag.class); NodeList list = parser.extractAllNodesThatMatch(bodyFilter); Node node = null; for (int i = 0; i < list.size(); i++) { node = list.elementAt(i); // 获得网页内容 保存在content中 body = ((BodyTag) node).getBody(); } } catch (ParserException e) { e.printStackTrace(); } return body; } /** * 过滤出class为term的<span>元素,并获得他们的文本 * @param url * @param charset * @return */ public Map<String,String> termGet(String url, String charset) { String content=util.getWebContentByGet(url,charset); Map<String, String> map = new HashMap<String, String>(); try { //开始解析 // 过滤出class为term的<span>元素 Parser parser = Parser.createParser(content, charset); AndFilter filter = new AndFilter(new TagNameFilter("span"),new HasAttributeFilter("class","term")); Node node = null; NodeList nodeList = parser.parse(filter); for (int i = 0; i < nodeList.size(); i++) { node = nodeList.elementAt(i); map.put("term", node.toPlainTextString()); } // 过滤出class为start-time的<span>元素 Parser parser2 = Parser.createParser(content, charset); AndFilter filter2 = new AndFilter(new TagNameFilter("span"),new HasAttributeFilter("class","start-time")); NodeList nodeList2 = parser2.parse(filter2); for (int i = 0; i < nodeList2.size(); i++) { node = nodeList2.elementAt(i); map.put("start-time", node.toPlainTextString()); } // 过滤出id为J_SingleEndTimeLabel的<span>元素 Parser parser3 = Parser.createParser(content, charset); AndFilter filter3 = new AndFilter(new TagNameFilter("span"),new HasAttributeFilter("id","J_SingleEndTimeLabel")); NodeList nodeList3 = parser3.parse(filter3); for (int i = 0; i < nodeList3.size(); i++) { node = nodeList3.elementAt(i); map.put("end-time", node.toPlainTextString()); } // 过滤出class为box post的<div>元素 Parser parser4 = Parser.createParser(content, charset); AndFilter filter4 = new AndFilter(new TagNameFilter("div"),new HasAttributeFilter("class","box post")); NodeList nodeList4 = parser4.parse(filter4); for (int i = 0; i < nodeList4.size(); i++) { node = nodeList4.elementAt(i); String temp=node.toPlainTextString().trim(); temp=temp.substring(10,20).trim(); map.put("pre-term", temp); } // 过滤出class为J_AwardNumber的<span>元素 Parser parser5 = Parser.createParser(content, charset); // AndFilter filter5 = // new AndFilter(new TagNameFilter("span"),new HasAttributeFilter("class","J_AwardNumber")); NodeList nodeList5 = parser5.parse(new HasAttributeFilter("class","J_AwardNumber")); StringBuffer buffer=new StringBuffer(); for (int i = 0; i < nodeList5.size(); i++) { node = nodeList5.elementAt(i); buffer.append(","+node.toPlainTextString()); } buffer.append("|"); // 过滤出class为blue J_AwardNumber的<span>元素 Parser parser6 = Parser.createParser(content, charset); // AndFilter filter6 = // new AndFilter(new TagNameFilter("span"),new HasAttributeFilter("class","blue J_AwardNumber")); NodeList nodeList6 = parser6.parse(new HasAttributeFilter("class","blue J_AwardNumber")); for (int i = 0; i < nodeList6.size(); i++) { node = nodeList6.elementAt(i); buffer.append(node.toPlainTextString()+","); } map.put("numbers", buffer.toString()); } catch (ParserException e) { // TODO Auto-generated catch block e.printStackTrace(); } return map; } private String processText(String content){ content=content.trim().replaceAll(" ", ""); // content=content.replaceAll("<p>", "\n"); // content=content.replaceAll("</TD>", ""); // content=content.replaceAll("</div>", ""); // content=content.replaceAll("</a>", ""); // content=content.replaceAll("<a href=.*>", ""); return content; } public static void main(String[] str) { String url="http://caipiao.taobao.com/lottery/order/lottery_dlt.htm?type=1"; HtmlparseUtil util=new HtmlparseUtil(); Map<String,String> map=util.termGet(url, "gb2312"); System.out.println("term="+map.get("term"));//<span class="term">第<em>10074</em>期</span> System.out.println("start-time="+map.get("start-time"));// System.out.println("end-time="+map.get("end-time"));// System.out.println("pre-term="+map.get("pre-term"));// System.out.println("numbers="+map.get("numbers"));// /* Map<String, String> linkMap = util.linkGet(url, "gb2312"); for (String s : linkMap.keySet()) { System.out.println(s + " = " + linkMap.get(s)); //如果是个链接,则再获取它的<body>中的内容 // if (s.startsWith("http")) { // util.bodyGet(s, "gb2312"); // } } */ } }
评论
3 楼
anybyb
2012-01-06
终于找到了哈哈 试试去
2 楼
gundumw100
2011-12-23
svygh123 写道
请问WebHttpClient是什么类呢,可以提供吗?谢谢
在这里http://gundumw100.iteye.com/blog/702521的WebClient类就是!
1 楼
svygh123
2011-12-22
请问WebHttpClient是什么类呢,可以提供吗?谢谢
发表评论
-
J2EE工具类:CalendarUtil .java
2010-08-11 19:51 2878package com.iwode.common; ... -
DESPlus+Base64+MD5Util
2010-07-14 09:03 3463//加密body字符串 DESPlus des = new D ... -
J2EE工具类:ClientSocketUtil.java&ServerSocketConnection.java
2010-07-02 17:03 4865客户端: import java.io.*; impor ... -
J2EE工具类:WebClient.java
2010-07-02 16:42 4162import java.io.BufferedReader ... -
J2EE工具类:WebHttpClient.java
2010-07-02 16:39 2799import java.io.BufferedReader ... -
J2EE工具类:DES.java
2010-06-30 16:37 3753import java.security.Key; im ... -
BeanUtils & PropertyUtils & MethodUtils类使用方法
2010-03-10 12:37 19355一、简介: BeanUtils提供对 Java反射和自省AP ... -
HttpClient的用法
2010-03-01 17:13 20775http://www.diybl.com/course/3_p ... -
使用HttpClient做的一个简单的网络爬虫
2010-03-01 09:12 8115我们有时要想把一个网 ... -
J2EE工具类:WeatherUtil.java
2010-01-13 21:11 2010package com.worthtech.app.uti ... -
Httpclient4.0 功能封装
2009-11-20 14:26 1645http://hc.apache.org/httpcompon ... -
apache commons-lang包
2009-11-20 13:01 3000http://commons.apache.org/lang/ ... -
J2EE工具类:ArrayUtil.java
2009-11-19 15:03 3212package com.worthtech.app.uti ... -
J2EE工具类:DataBaseUtil.java
2009-11-16 11:21 3360package com.worthtech.app.sql ... -
J2EE工具类:PropertiesUtil.java
2009-11-13 14:37 8052package com.worthtech.app.uti ... -
如何在首页加载数据?
2009-11-11 17:21 2735网站打开的第一页是index.jsp,但里面有些数据是从数据库 ... -
J2EE工具类:StringUtil.java
2009-10-19 17:40 3365package com.worthtech.app.uti ... -
J2EE工具类:DateUtil .java
2009-10-19 17:38 3829package com.worthtech.app.uti ... -
J2EE工具类:NumberUtil.java
2009-10-19 17:19 3194package com.worthtech.app.uti ... -
J2EE工具类:MoneyUtil.java小写钱转成大写钱
2009-10-19 17:09 3277package com.worthtech.app.uti ...
相关推荐
docker imagedocker-compose
COMSOL 21700电池针刺热失控实验与结果分析,comsol 21700针刺热失控 ,comsol; 21700针; 刺热失控,COMSOL研究:21700电池针刺热失控现象解析
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
1、文件内容:perl-File-ShareDir-1.03-8.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/perl-File-ShareDir-1.03-8.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装
免费JAVA毕业设计 2024成品源码+论文+录屏+启动教程 启动教程:https://www.bilibili.com/video/BV1SzbFe7EGZ 项目讲解视频:https://www.bilibili.com/video/BV1Tb421n72S 二次开发教程:https://www.bilibili.com/video/BV18i421i7Dx
"深入探究蠕动流与Brinkman达西定律在COMSOL模拟中的应用",蠕动流、Brinkman 达西定律COMSOL ,蠕动流; Brinkman 达西定律; COMSOL,**利用达西定律与Brinkman模型分析蠕动流现象**
免费JAVA毕业设计 2024成品源码+论文+录屏+启动教程 启动教程:https://www.bilibili.com/video/BV1SzbFe7EGZ 项目讲解视频:https://www.bilibili.com/video/BV1Tb421n72S 二次开发教程:https://www.bilibili.com/video/BV18i421i7Dx
免费JAVA毕业设计 2024成品源码+论文+录屏+启动教程 启动教程:https://www.bilibili.com/video/BV1SzbFe7EGZ 项目讲解视频:https://www.bilibili.com/video/BV1Tb421n72S 二次开发教程:https://www.bilibili.com/video/BV18i421i7Dx
JRT 0287-2023 人工智能算法金融应用信息披露指南.pdf
西门子S7协议纯指令编写源代码,支持多区域数据通信读写:Qx.y与Mx.y的单点操作,Byte、Word、DWORD的全面读写,以及V区浮点数处理,西门子S7协议通信,纯指令编写,不调用dll。 源代码 实现以下功能, 1,对单点读写,Qx.y,Mx.y的写入,Ix.y的读取。 2,对Byte,Word,DWORD的读写,支持读写Q区,I区,M区,V区。 3,对浮点数的读写,支持V区。 以上功能已经在S7 Smart PLC上测试过,带网口的CR40 CR60已支持。 ,西门子S7协议通信;纯指令编写;单点读写;Qx.y、Mx.y写入;Ix.y读取;Byte、Word、DWORD读写;Q区、I区、M区、V区读写;浮点数读写;S7 Smart PLC测试;网口CR40 CR60支持,西门子S7协议通信纯指令编写:PLC多区域读写及浮点数操作实现
matlab绘图 采用PreScan、ROS、Simulink进行自动驾驶控制算法仿真 横向控制采用的是stanley,MPC算法 使用说明 0分支说明 master分支:运行在ros端的控制算法,包括stanley,mpc。 PreScan分支:包含了prescan工程的压缩文件,解压后需要在matlab中添加自定义的ros msg,也就是src/nodes/msgs 配合控制程序,可以直接进行prescan-ros仿真。 1环境说明 PC1:装win10系统;运行prescan2019.2和matlab2019b;ip = 172.16.6.248 PC2:Ubuntu18.04,ros melodic;ip = 172.16.6.70 p.s. PC1和PC2应该处于同一网段下 2PC2(ubuntu18.04)操作说明 clone master分支的代码后 2.1修改PC2的.bashrc文件,向其中添加PC2的ip地址 sudo gedit ~/.bashrc #打开bashrc #在bashrc文件的末尾添加如下两行 export ROS_IP=172.16.
B2B2C2021H5 + 100% PHP8.2 + Laravel10.0
内容概要:本文详细介绍了C++从基础语法、面向对象编程到高级特性等方面的编程要点,包括变量与数据类型、运算符与表达式、控制结构、类与对象、封装、继承、多态等核心概念,并深入探讨了C++在游戏开发、人工智能、操作系统开发等热门领域的具体应用案例。此外,还讲解了C++在模板、异常处理和智能指针方面的高级功能。最后总结了C++在现代科技发展中扮演的重要角色和未来的应用前景。 适合人群:具备一定编程背景的开发者,特别是对C++语言感兴趣的初级至中级程序员。 使用场景及目标:①希望通过本文深入了解C++的各个方面,并在实践中更好地应用;②提升C++编程技能,在涉及高性能计算、嵌入式系统、人工智能等领域时能够得心应手;③掌握最新的C++技术和趋势,为应对未来技术变革做好准备。 其他说明:本文不仅讲述了C++的基本理论知识,还在多个实际案例中展示了如何运用这些知识解决问题,帮助读者更好地理解C++的特点与优势。
Matlab
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
"深入解析S7-200组态王液位串级控制:双容带前馈与反馈的梯形图接线图原理及IO分配与组态画面详解",No.92 S7-200组态王液位串级控制,双容带前馈和反馈 带解释的梯形图接线图原理图图纸,io分配,组态画面 ,S7-200组态王液位;串级控制;双容带前馈和反馈;梯形图接线图原理图;IO分配;组态画面,"S7-200液位串级控制:双容前馈反馈组态原理图及IO分配详解"
1、文件内容:perl-Config-Simple-4.59-15.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/perl-Config-Simple-4.59-15.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装
"S7-1200 PLC改造No.173 M7120型平面磨床电气控制系统:原理图、接线图及IO分配与组态画面详解",No.173 S7-1200 MCGS M7120型平面磨床电气控制系统的PLC改造 带解释的梯形图接线图原理图图纸,io分配,组态画面 ,核心关键词:S7-1200 PLC; MCGS M7120型平面磨床; 电气控制系统; 改造; 梯形图接线图原理图; IO分配; 组态画面。,"S7-1200 PLC改造平面磨床电气控制系统方案"
Matlab算法:结构与参数学习在贝叶斯网络构建中的应用,实现因果推断与条件概率计算,数据程序分离,注释详尽易理解,Matlab算法:结构学习、参数学习建个贝叶斯网络 Matlab算法:贝叶斯网络因果推断,通过结构学习、参数学习建立贝叶斯网络,给定证据,获得指定特征的条件概率。 数据程序分开,便于使用,注释详细,助于理解 ,结构学习; 参数学习; 贝叶斯网络; 因果推断; 条件概率; 数据程序分离; 注释详细。,Matlab实现贝叶斯网络结构学习与参数学习算法
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。