jsoup-处理html中的script数据
/**
* 价值在线数据-左边分类抓取
* http://www.valueonline.cn/laws/laws?typeid=96219074211635284
* @author hwaggLee
*/
public class UtilsHtmValueonLineType { public static void main(String[] args) {
String url = "http://www.valueonline.cn/laws/laws?typeid=96219074211635284";
readHtml(url);
} public static List<Object> readHtml(String url){
List<Object> list = new ArrayList<Object>();
//
Document doc = null;
try {
doc = Jsoup.connect(url).get();
} catch (Exception e) {
///e.printStackTrace();
System.out.println(e.getMessage()+":--------------->"+url);
}
if( doc == null )return list;
Elements elScripts = doc.getElementsByTag("script");
String[] elScriptList = elScripts.get(0).data().toString().split("var");
String strTypeList = elScriptList[2];
if( StringUtils.isNotBlank(strTypeList)){
/*strTypeList = strTypeList.substring(strTypeList.indexOf("["), strTypeList.lastIndexOf("]")+1);
JSONArray array = JSONArray.fromObject(strTypeList);
JSONArray arrayList = JSONArray.fromObject(array.get(0));
for (Object o : arrayList) {
JSONObject object = JSONObject.fromObject(o);
StringBuilder sb = new StringBuilder();
sb.append("insert into n3b_vl_plate_type values ");
sb.append(" ( ");
sb.append("'"+object.get("id")+"'");
sb.append(",'"+object.get("parentId")+"'");
sb.append(","+object.get("level")+"");
sb.append(",'"+object.get("declareTypeName")+"'");
sb.append(",'"+object.get("declareTypeNo")+"'");
sb.append(",'"+object.get("validFlag")+"'");
sb.append(","+object.get("oftenFlag")+"");
sb.append(",'"+object.get("showTypeName")+"'");
sb.append(" ); ");
System.out.println(sb.toString());
}*/
} strTypeList = elScriptList[3];
System.out.println(strTypeList);
if( StringUtils.isNotBlank(strTypeList) ){
strTypeList = strTypeList.substring(strTypeList.indexOf("["), strTypeList.lastIndexOf("]")+1);
JSONArray arrayList = JSONArray.fromObject(strTypeList);
for (Object o : arrayList) {
JSONObject object = JSONObject.fromObject(o);
StringBuilder sb = new StringBuilder();
sb.append("insert into n3b_vl_market_type values ");
sb.append(" ( ");
sb.append("'0"+object.get("code_value")+"'");
sb.append(",'"+object.get("code_name")+"'");
sb.append(",'"+object.get("code_no")+"'");
sb.append(",'"+object.get("code_value")+"'");
sb.append(",'"+object.get("valid_flag")+"'");
sb.append(",'"+object.get("version")+"'");
sb.append(",'"+object.get("code_type")+"'");
sb.append(" ); ");
System.out.println(sb.toString());
}
}
return list;
} }
jsoup-处理html中的script数据的更多相关文章
- ASP.NET MVC搭建项目后台UI框架—8、将View中选择的数据行中的部分数据传入到Controller中
目录 ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NET MVC搭建项目后台UI框架—3.面板折叠和展开 ASP.NE ...
- dataTransfer.getData()在dragover,dragenter,dragleave中无法获取数据的问题
做拖拽相关效果时,想在ondragover时给被拖拽元素添加一些样式,于是在dragover事件的函数中通过dataTransfer.getData()获取在dragstart中设置的数据,然而发现d ...
- .SQL Server中 image类型数据的比较
原文:.SQL Server中 image类型数据的比较 在SQL Server中如果你对text.ntext或者image数据类型的数据进行比较.将会提示:不能比较或排序 text.ntext 和 ...
- [翻译]比较ADO.NET中的不同数据访问技术(Performance Comparison:Data Access Techniques)
Performance Comparison: Data Access Techniques Priya DhawanMicrosoft Developer Network January 2002 ...
- View中选择的数据行中的部分数据传入到Controller中
将View中选择的数据行中的部分数据传入到Controller中 ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NE ...
- vue中什么样的数据可以是在视图中显示
1. Vue中不可以添加不存在的属性,因为不存在的属性是没有getter和setter的. <div id="app"> {{msg.a}} {{msg.b}} < ...
- vue中如何实现数据的双向绑定
vue中如何实现数据的双向绑定 实现视图变化数据跟着变:分两步,上面get中的为第二步(即再次读取的时候会调用get方法得到之前设置的值,以此来实现动态改变) 由于直接写obj.name = this ...
- JavaScript 中的所有数据都是以 64 位浮点型数据(float) 来存储。浮点型数据使用注意事项。全局变量特殊之处
JavaScript 中的所有数据都是以 64 位浮点型数据(float) 来存储. 所有的编程语言,包括 JavaScript,对浮点型数据的精确度都很难确定: <!DOCTYPE html& ...
- Java WEB中的HttpServletResponse数据传递
1.什么是HttpServletResponse 2.使用HttpServletResponse向浏览器发送数据及相关实例. 实例1:实现文件下载功能 实例2:实现验证码注册 实例3:实现页面3秒后跳 ...
随机推荐
- iOS 9.3真机适配-Could not find Developer Disk Image问题
Could not find Developer Disk Image 这是由于真机系统过高或者过低,Xcode中没有匹配的配置包文件,我们可以通过这个路径进入配置包的存放目录: /Applicati ...
- css sprite简便方法切 《评分五角星》
摘抄自我趣同伴的心得: 大家可以会遇到过要做满意度用星级来评分的情况,类似这种 实现的方法有很多,大家最初想到的可能是根据满意度有多少种情况就切多少种图,然后拼在一张图里面,通过控制图片的位置来实现. ...
- CRLF line terminators导致shell脚本报错:command not found
Linux和Windows文本文件的行结束标志不同.在Linux中,文本文件用"/n"表示回车换行,而Windows用"/r/n"表示回车换行.有时候在Wind ...
- MS SQL错误:SQL Server failed with error code 0xc0000000 to spawn a thread to process a new login or connection. Check the SQL Server error log and the Windows event logs for information about possible related problems
早晨宁波那边的IT人员打电话告知数据库无法访问了.其实我在早晨也发现Ignite监控下的宁波的数据库服务器出现了异常,但是当时正在检查查看其它服务器发过来的各类邮件,还没等到我去确认具体情 ...
- 浅谈iptables防SYN Flood攻击和CC攻击
------------------------本文为自己实践所总结,概念性的东西不全,这里粗劣提下而已,网上很多,本文主要说下目前较流行的syn洪水攻击和cc攻击------------------ ...
- 《java JDK7 学习笔记》之Collection
一.使用Collection 收集对象 1.认识Collection架构 Java SE提供了满足各种需求的API,在使用这些API前,建议先了解其继承与接口操作架构,才能了解何时使用哪个类,以及类之 ...
- Rebuild Instance 操作详解 - 每天5分钟玩转 OpenStack(37)
上一节我们讨论了 snapshot,snapshot 的一个重要作用是对 instance 做备份. 如果 instance 损坏了,可以通过 snapshot 恢复,这个恢复的操作就是 Rebuil ...
- 解惑spring嵌套事物
工作中一直对spring中的事物管理都是最简单的配置 但是spring中的事物传播性配置 还有很多种,有时候经常疑惑service调用service的问题,今天的论坛上看到一篇写的非常详细的文字.记录 ...
- Nginx服务安装配置
1.Nginx介绍 Nginx是一个高性能的HTTP和反向代理服务器,由俄罗斯人开发的,第一个版本发布于2004年10月4日.Nginx由于出色的性能,在世界范围内受到了越来越多人的关注,其特点是占有 ...
- Mysql 主从热备份
工作原理 首先锁定并备份主服务器数据库,从服务器导入备份的数据库,实现两个数据库的初态一样.然后把主服务器上执行过的sql语句都记录到二进制日志 Binarylog 中,从服务器会来读取这个log, ...