jsoup解释html的script,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 readHtml(String url){

List list = new ArrayList();

//

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;

}

}

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的.

{{msg.a}} {{msg.b}} &lt ...

vue中如何实现数据的双向绑定

vue中如何实现数据的双向绑定 实现视图变化数据跟着变:分两步,上面get中的为第二步(即再次读取的时候会调用get方法得到之前设置的值,以此来实现动态改变) 由于直接写obj.name = this ...

JavaScript 中的所有数据都是以 64 位浮点型数据(float) 来存储。浮点型数据使用注意事项。全局变量特殊之处

JavaScript 中的所有数据都是以 64 位浮点型数据(float) 来存储. 所有的编程语言,包括 JavaScript,对浮点型数据的精确度都很难确定: ...

Java WEB中的HttpServletResponse数据传递

1.什么是HttpServletResponse 2.使用HttpServletResponse向浏览器发送数据及相关实例. 实例1:实现文件下载功能 实例2:实现验证码注册 实例3:实现页面3秒后跳 ...

随机推荐

Ural 1741 Communication Fiend(隐式图+虚拟节点最短路)

1741. Communication Fiend Time limit: 1.0 second Memory limit: 64 MB Kolya has returned from a summe ...

触发器(trigger)的作用???

1.触发器,英文名trigger,可以简单的理解为: 就相当于是一个事件的触发装置,当满足了一定的事件触发条件后进行相应的操作 例如当复位set信号到来时,我们就让A<=B,这样一个系统就是一个 ...

苹果电脑出现 &period;DS&lowbar;Store文件,删除不掉怎么处理?

今天早上打开电脑,发现桌面上出现一个.DS_Store文件.可是出现的莫名其妙,也就没在意,可是重复删除之后还是出现.后来查了一下网上的资料,才知道,昨天我加入git的时候,为了看见 .git这个隐藏 ...

Qt之遍历文件夹(经典详解)

关于Qt操作文件夹.文件的知识用途较多,比如遍历下一层乃至所有子孙文件.文件夹,获取它们的一些信息(大小.类型.最后更改时间等).当然,也可以进行级联删除.     首先看简单的: 一.Qt遍历文件夹 ...

GDI&plus;学问------ 绘制可变角度的色彩渐变效果

GDI+ 它是GDI(Windows 图形设备接口提供的早期版本)也许是版本号,它是Microsoft Windows XP作系统即兴许版本号的图形显示技术. 它已经集成到了.Net开发环境中.所以无 ...

利用VNC远程登录Linux服务器简易版

我负责管理实验室的一台服务器,安装的系统是CentOS 6.7.使用pietty远程登录服务器(命令行) 需求:使实验室的同学和老师使用RealVNC远程登录服务器. 一,首先检查一下服务器是否安装V ...

Win10安装cygwin并添加apt-cyg

1.去Cygwin官网:https://www.cygwin.com/ 进入上图的install链接(下图),根据自己的电脑选择32位还是64位 我选择了一个32位的: 一直下一步下图: 163镜像链 ...

windows的80端口被占用时的处理方法

1.利用jfinal极速开发时,显示异常,80端口被占用. 2.win+R输入cmd打开黑窗口. netstat -ano | findstr 3.发现进程被占用,输入以下指令停止http服务 net ...

使用jsencrypt&lpar;rsa加密方式&rpar;给js加密防被刷

加密步骤 1.需要加密的参数 * * ).toISOString().replace(/T/g, }Z/, ''); //使用本地时间,然后转换格式 2.js中引用jsencrypt.js文件,然后实 ...

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Jsoup 是一个 Java 的 HTML 解析器,它可以解析 HTML 文档并提取其数据。但是,它并不能执行 HTML 的 JavaScript 函数。 如果你需要执行 HTML 的 JavaScript 函数,可以考虑使用 Java 的 Rhino JavaScript 引擎。Rhino 是一个开源的 JavaScript 引擎,可以在 Java 执行 JavaScript 代码。你可以使用 Jsoup 解析 HTML 文档,并将其的 JavaScript 代码提取出来,然后使用 Rhino 执行该代码。 以下是一个简单的示例: ```java import org.jsoup.Jsoup; import org.mozilla.javascript.Context; import org.mozilla.javascript.Scriptable; public class JsoupScriptExecutor { public static void main(String[] args) throws Exception { String html = "<html><head><script>function sayHello() { alert('Hello!'); }</script></head><body><button onclick='sayHello()'>Say Hello</button></body></html>"; // 解析 HTML 文档 org.jsoup.nodes.Document doc = Jsoup.parse(html); // 获取所有的 script 标签 org.jsoup.select.Elements scripts = doc.select("script"); // 创建一个 JavaScript 上下文 Context rhino = Context.enter(); try { // 创建一个新的全局作用域 Scriptable scope = rhino.initStandardObjects(); // 逐个执行每个 script 标签的 JavaScript 代码 for (org.jsoup.nodes.Element script : scripts) { String jsCode = script.html(); rhino.evaluateString(scope, jsCode, "script", 1, null); } // 执行 HTML 的 JavaScript 函数 Object result = rhino.evaluateString(scope, "sayHello()", "script", 1, null); } finally { // 退出 JavaScript 上下文 Context.exit(); } } } ``` 在上面的示例,我们首先使用 Jsoup 解析 HTML 文档,然后使用 Jsoup 的 select 方法获取所有的 script 标签。接着,我们创建一个新的 JavaScript 上下文,并在其逐个执行每个 script 标签的 JavaScript 代码。最后,我们执行 HTML 的 sayHello 函数,并将结果保存在 result 变量
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值