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秒后跳 ...
随机推荐
- 初学HTML 常见的标签(三) 插入类标签
第三篇博客, 这次说的是插入链接类标签, 我们平常在网页中经常能看到蓝色的链接类标签, 或者是一张图片, 一个电邮, 这些都是插入链接类的标签起的作用. <a></a>链接标签 ...
- Android 四大组件之再论BroadCast
BroadCast 是android提供的跨进程通讯的有一利器. 1.异步执行onReceiver @Nullable public abstract Intent registerReceiver( ...
- 常用API——日期型函数Date
上图 ·声明 var myDate = new Date(); //系统当前时间 var myDate = new Date(yyyy, mm, dd, hh, mm, ss); var myDate ...
- Python学习笔记2-解析数据
Import os; -- Python自带 print(os.getcwd()) -- 获得当前工作目录 os.chdir('/Users/longlong/Documents') -- 转换到/U ...
- 利用QMP和QEMU虚拟机交互的几种方式
QMP是一种基于JSON格式的传输协议,我们能利用它与一个QEMU虚拟机实例进行交互,例如查询,更改虚拟机的状态,获取设备信息等等.下面是几种创建QMP的方法以及对其它的一些基本命令的使用: 1.基于 ...
- 【CSS】使用盒模型
盒子是CSS中的基础概念,我们需要使用它来配置元素的外观以及文档的整体布局. 1. 为元素应用内边距 应用内边距会在元素内容和边距之间添加空白.我们可以为内容盒的每个边界单独设置内边距,或者使用 pa ...
- js数组中的常用方法总结
栈方法(后进先出) ArrayObj.push()方法 ArrayObj.pop()方法 ArrayObj.push():就是向数组末尾添加新的元素,返回的是数组新的长度.ArrayObj.pop() ...
- redux的中间层 --reactjs学习
React只负责UI层,也就是我们通常在MVC框架中 所说的View层,所以在使用React开发中 我们得引入Redux 负责Model 一开始学习Redux的中间层 有点 摸不到头, 其实只要你注意 ...
- 关于ES6新增的东西
查询浏览器对ES6的支持情况https://kangax.github.io/compat-table/es6/ Chrome.MS Edge.Firefox.Safari.Node和其它很多环境都已 ...
- Linux操作系统启动流程梳理
接触linux系统运维已经好几年了,常常被问到linux系统启动流程问题,刚好今天有空来梳理下这个过程:一般来说,所有的操作系统的启动流程基本就是: 总的来说,linux系统启动流程可以简单总结为以下 ...