From 30cba46c3a27a307f5658f1078f927f6b7100e00 Mon Sep 17 00:00:00 2001 From: yujian <yujian@163.com> Date: 星期二, 17 十二月 2019 10:22:04 +0800 Subject: [PATCH] 兼容京东领券链接 --- fanli/src/main/java/com/yeshi/fanli/util/jd/JDUtil.java | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 49 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 cb97e00..51bdc18 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 @@ -655,6 +655,51 @@ return null; } + + /** + * 鏍规嵁 u.jd鐭繛鎺ヨ幏鍙栫湡瀹炵殑鍟嗗搧id + * @param url + * @return + */ + public static String getJDGoodsIdByUJD(String url) { + try { + String body = HttpUtil.get(url); + Document doc = Jsoup.parse(body); + Elements els = doc.getElementsByTag("script"); + for (int i = 0; i < els.size(); i++) { + String content = els.get(i).html(); + if (content.indexOf("var hrl") > -1) { + ScriptEngineManager manager = new ScriptEngineManager(); + ScriptEngine engine = manager.getEngineByName("javascript"); + + int indexOf = content.indexOf("var hrl"); + content = content.substring(indexOf, content.length()); + + int indexOf2 = content.indexOf(";"); + content = content.substring(0, indexOf2+1); + + String js = "function getData(){return JSON.stringify(hrl);}" + content; + + engine.eval(js); + if (engine instanceof Invocable) { + Invocable in = (Invocable) engine; + String data = in.invokeFunction("getData").toString(); + String link = data.substring(1, data.length()-1); + + String realLink = HttpUtil.getLocation(link); + realLink = realLink.substring(realLink.indexOf("sku=") + 4, realLink.length()); + return realLink.substring(0, realLink.indexOf("&")); + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + + /** * 鏌ヨ澶╃尗鍟嗗搧鍥剧墖銆佹爣棰� * @@ -844,5 +889,9 @@ } return getShowCouponInfo(goods.getCouponInfoList(), price); } + + + + } -- Gitblit v1.8.0