使用Jsoup(parse html) + ScriptEngine(執行js)

使用Jsoup(parse html) + ScriptEngine(執行js)

 

import java.net.URL;

 

import javax.script.ScriptEngine;

import javax.script.ScriptEngineManager;

 

import org.jsoup.Jsoup;

import org.jsoup.nodes.Document;

import org.jsoup.nodes.Element;

import org.jsoup.select.Elements;

 

import net.sf.json.JSONArray;

import net.sf.json.JSONObject;

 

public class BbTest3 {

 

         public static void main(String args[]) throws Exception {

                   // 使用jsonparse html

                   String url = "123456";

                   Document doc = Jsoup.parse(new URL(url), 3000);

 

                   // 取得所有的script tag

                   Elements eles = doc.getElementsByTag("script");

                   for (Element ele : eles) {

 

                            // 檢查是否有detailInfoObject字串

                            String script = ele.toString();

                            if (script.indexOf("detailInfoObject") > -1) {

 

                                     // 只取得script的內容

                                     script = ele.childNode(0).toString();

 

                                     // 使用ScriptEngineparse

                                     ScriptEngine engine = new ScriptEngineManager().getEngineByName("javascript");

                                     engine.eval(script);

 

                                     // 取得你要的變數

                                     Object obj = engine.get("detailInfoObject");

                                     System.out.println("detailInfoObject = " + obj);

 

                                     // obj轉成Json物件

                                     JSONObject json = JSONObject.fromObject(obj);

                                     System.out.println("json = " + json);

 

                                     // 取得欄位

                                     System.out.println("destInfo = " + json.get("destInfo"));

 

                                     // 取得欄位(array type)

                                     JSONArray scans = json.getJSONArray("scans");

                                     for (int i = 0, max = scans.size(); i < max; i++) {

                                               JSONObject child = (JSONObject) scans.get(i);

                                               System.out.println("scans[" + i + "] = " + child);

                                     }

 

                            }

                   }

         }

}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值