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;
    }

}
时间: 2024-10-11 00:46:17

jsoup-处理html中的script数据的相关文章

在mvc4.0中使用json数据

今天接触了mvc4.0项目,View中需要获取从Control传来的json数据.过程记录如下: 在 MVC 返回的ActionResult中,为我们提供了JSONResult(继承至ActionResult)对象,我们可以直接用他来返回JSON对象给View处理 将自定义的Model 实例传给Json方法,它会自动根据我们Model 的属性,遍历属性后生成JSON对象,返回View.然后就可以在前端使用JQ对JSON数据进行处理了 Control中的代码: public JsonResult

jQuery 中 ajax 提交数据应用的一个小demo

举一个jquery中ajax的应用小 demo 便于以后的更多项目拓展 ,这里要注意的是保存的文件名问题 ... ajax02.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> </head> <body> <div id="form&qu

jQuery 中 ajax 请求数据应用的一个小demo

举一个jquery中ajax的应用小 demo 便于以后的更多项目拓展 ,这里要注意的是保存的文件名和文件图片路径问题 ... ajax01.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title> ajax小例子 </title> </head> <body> <!--

统计电视机顶盒中无效用户数据,并以压缩格式输出

前面我们学习了如何使用MapReduce计数器,那么我们通过下面这个项目巩固我们所学 1.介绍 本项目我们使用电视机顶盒数据,统计出无效用户数据记录,并解析出有效的用户数据以压缩格式输出 2.数据集 数据来源于“hadoop小文件合并”处理后的结果 3.分析 基于需求,我们通过以下几步完成: 1.首先使用Jsoup,解析出html格式的机顶盒数据 2.编写Mapper类,自定义计数器统计无效的机顶盒数据,并将有效的机顶盒数据以压缩格式输出 4.实现 1.首先定义一个ParseTVData类,解析

[翻译]比较ADO.NET中的不同数据访问技术(Performance Comparison:Data Access Techniques)

Performance Comparison: Data Access Techniques Priya DhawanMicrosoft Developer Network January 2002 原文链接:https://msdn.microsoft.com/en-us/library/ms978388.aspx 概要:在典型的应用环境中,比较不同数据访问技术的表现性能.适用于Microsoft .NET Framework Beta2 和 Microsoft SQL Server 2000

JavaScript 中的所有数据都是以 64 位浮点型数据(float) 来存储。浮点型数据使用注意事项

JavaScript 中的所有数据都是以 64 位浮点型数据(float) 来存储. 所有的编程语言,包括 JavaScript,对浮点型数据的精确度都很难确定: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>菜鸟教程(runoob.com)</title> </head> <body> <p id="

在Java中Highcharts前后台数据交互传输

最近在项目中要添加一个Highcharts数据图表显示.看过官方的Ajax交互事例,可惜好像使用的是PHP语言,而且没有显示后台的代码.百度查看了很多前辈们的事例,发现没一样是我所要的效果...最后还是自己试着写写.今天却成功了!我后台用的是SSH框架.在此把此经验分享给大家. Highcharts其实还是满简单的,有点像一个框架一样,因为步骤单一而简单,只要自己在各个步骤中改一改自己想要的效果就出来了,在此我就不介绍这方面的知识了,有兴趣的可以上中文官方查看事例或学习.Highcharts中文

ASP.NET MVC搭建项目后台UI框架—8、将View中选择的数据行中的部分数据传入到Controller中

ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NET MVC搭建项目后台UI框架—3.面板折叠和展开 ASP.NET MVC搭建项目后台UI框架—4.tab多页签支持 ASP.NET MVC搭建项目后台UI框架—5.Demo演示Controller和View的交互 ASP.NET MVC搭建项目后台UI框架—6.客户管理(添加.修改.查询.分页) ASP.NET MVC搭建项目后台UI框架—7.统计报表 ASP.NE

vue中什么样的数据可以是在视图中显示

1. Vue中不可以添加不存在的属性,因为不存在的属性是没有getter和setter的. <div id="app"> {{msg.a}} {{msg.b}} </div> <script src="js/vue.js"></script> <script> let vm = new Vue({ el: "#app", data: { msg: { a: 1 } } }) vm.msg