From 6b75391e97aa770e12965ec6e542856df79e6de0 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期五, 27 九月 2019 15:14:02 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/div' into div --- fanli/src/main/java/com/yeshi/fanli/util/pinduoduo/PinDuoDuoUtil.java | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 53 insertions(+), 0 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/util/pinduoduo/PinDuoDuoUtil.java b/fanli/src/main/java/com/yeshi/fanli/util/pinduoduo/PinDuoDuoUtil.java index 3abbddc..37f2d29 100644 --- a/fanli/src/main/java/com/yeshi/fanli/util/pinduoduo/PinDuoDuoUtil.java +++ b/fanli/src/main/java/com/yeshi/fanli/util/pinduoduo/PinDuoDuoUtil.java @@ -525,5 +525,58 @@ } return null; } + + + public static PDDGoodsDetail getPDDGoodsInfo(String id) { + try { + Document doc = Jsoup.connect("http://yangkeduo.com/goods.html?goods_id=" + id) + .userAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36").get(); + Elements els = doc.getElementsByTag("script"); + for (int i = 0; i < els.size(); i++) { + if (els.get(i).html().contains("window.rawData")) { + String dataJS = els.get(i).html().replace("window.", "var "); + dataJS += "function getData(){return JSON.stringify(rawData);}"; + + ScriptEngineManager manager = new ScriptEngineManager(); + ScriptEngine engine = manager.getEngineByName("javascript"); + try { + engine.eval(dataJS); + if (engine instanceof Invocable) { + Invocable in = (Invocable) engine; + String jsonStr = in.invokeFunction("getData").toString(); + JSONObject json = JSONObject.fromObject(jsonStr); + + JSONObject goods = json.optJSONObject("store").optJSONObject("initDataObj") + .optJSONObject("goods"); + + String imageData = goods.optString("viewImageData"); + imageData = imageData.replace("[", "").replace("]", ""); + String[] images = imageData.split(","); + + String image = images[0].trim(); + if (image.startsWith("\"")) + image =image.substring(1, image.length()-1); + if (image.endsWith("\"")) + image =image.substring(0, image.length()-2); + + + PDDGoodsDetail goodsDetail = new PDDGoodsDetail(); + goodsDetail.setGoodsImageUrl("http:" + image); + goodsDetail.setGoodsThumbnailUrl("http:" + image); + goodsDetail.setGoodsName(goods.optString("goodsName")); + goodsDetail.setGoodsId(goods.optLong("goodsID")); + return goodsDetail; + } + } catch (Exception e) { + e.printStackTrace(); + } + break; + } + } + } catch (Exception e1) { + e1.printStackTrace(); + } + return null; + } } -- Gitblit v1.8.0