yujian
2019-12-19 626d711cb15896055c13fe344eb7fcc824589715
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);
   }
}