From b8b373ab3ba3e8cadc241cce78ecca9594bdc68f Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期五, 02 八月 2019 11:30:12 +0800 Subject: [PATCH] 消息订单搜索框订单号显示规则更改 --- fanli/src/main/java/com/yeshi/fanli/util/jd/JDUtil.java | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 44 insertions(+), 0 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/util/jd/JDUtil.java b/fanli/src/main/java/com/yeshi/fanli/util/jd/JDUtil.java index 707d0f6..95750f4 100644 --- a/fanli/src/main/java/com/yeshi/fanli/util/jd/JDUtil.java +++ b/fanli/src/main/java/com/yeshi/fanli/util/jd/JDUtil.java @@ -9,6 +9,10 @@ import java.util.List; import java.util.Map; +import javax.script.Invocable; +import javax.script.ScriptEngine; +import javax.script.ScriptEngineManager; + import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.methods.PostMethod; import org.jsoup.Jsoup; @@ -464,6 +468,7 @@ /** * 鏍规嵁閾炬帴鎻愬彇鍟嗗搧ID + * * @param url * @return */ @@ -481,4 +486,43 @@ return null; } + public static JDGoods getGoodsFromWeb(Long skuId) { + String url = String.format("https://item.m.jd.com/product/%s.html", skuId + ""); + try { + Document doc = Jsoup.connect(url).get(); + Elements scripts = doc.getElementsByTag("script"); + for (int i = 0; i < scripts.size(); i++) { + String content = scripts.get(i).html(); + if (content.contains("window._itemOnly =")) { + try { + String jsContent = "var windowData={};function getData(){return JSON.stringify(windowData._itemOnly);}" + + "var _itemOnly={}; " + content.replace("window.", "windowData."); + System.out.println(jsContent); + ScriptEngineManager m = new ScriptEngineManager(); + ScriptEngine engine = m.getEngineByName("JavaScript"); + engine.eval(jsContent); + if (engine instanceof Invocable) { + Invocable in = (Invocable) engine; + String data = in.invokeFunction("getData").toString(); + JSONObject root = JSONObject.fromObject(data); + root = root.optJSONObject("item"); + JDGoods goods = new JDGoods(); + goods.setSkuId(root.optLong("skuId")); + goods.setPicUrl("http://img14.360buyimg.com/n1/" + root.optJSONArray("image").optString(0)); + goods.setSkuName(root.optString("skuName")); + return goods; + } + } catch (Exception e) { + e.printStackTrace(); + } + } + } + + } catch (IOException e) { + e.printStackTrace(); + } + + return null; + } + } -- Gitblit v1.8.0