admin
2019-07-23 496c2842240eae09bb56e98e1fae71540a85befa
fanli/src/main/java/com/yeshi/fanli/util/taobao/DaTaoKeUtil.java
@@ -5,13 +5,19 @@
import java.math.BigDecimal;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import javax.script.Invocable;
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 com.yeshi.fanli.dto.dataoke.DingDongQiangDTO;
import com.yeshi.fanli.entity.bus.clazz.GoodsClass;
import com.yeshi.fanli.entity.taobao.TaoBaoCoupon;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
@@ -364,28 +370,45 @@
    * 
    * @return
    */
   public static List<DaTaoKeDetail> getDingDongQiang() {
      List<DaTaoKeDetail> goodsList = new ArrayList<>();
   public static List<DingDongQiangDTO> getDingDongQiang() {
      List<DingDongQiangDTO> list = new ArrayList<>();
      Document doc = null;
      try {
         Document doc = Jsoup.connect("http://www.dataoke.com/ddq")
               .userAgent(
                     "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.92 Mobile Safari/537.36")
               .get();
         Elements items = doc.getElementsByClass("main").get(0).getElementsByClass("clearfix").get(0)
               .getElementsByTag("li");
         for (int i = 0; i < items.size(); i++) {
            DaTaoKeDetail detail = new DaTaoKeDetail();
            String id = items.get(i).getElementsByTag("a").get(0).attr("href").split("\\?")[1].replace("id=", "");
            detail.setId(Long.parseLong(id));
            goodsList.add(detail);
         }
      } catch (Exception e) {
         doc = Jsoup.connect("http://www.dataoke.com/ddq").get();
      } catch (IOException e1) {
         e1.printStackTrace();
      }
      return goodsList;
      Elements els = doc.getElementsByTag("script");
      for (int i = 0; i < els.size(); i++) {
         String content = els.get(i).html();
         if (content.indexOf("var dataDef") > -1) {
            ScriptEngineManager manager = new ScriptEngineManager();
            ScriptEngine engine = manager.getEngineByName("javascript");
            try {
               String js = "function getData(){return  JSON.stringify(dataDef);}" + content;
               engine.eval(js);
               if (engine instanceof Invocable) {
                  Invocable in = (Invocable) engine;
                  String data = in.invokeFunction("getData").toString();
                  System.out.println(data);
                  JSONObject dataJson = JSONObject.fromObject(data);
                  for (Iterator<String> its = dataJson.keys(); its.hasNext();) {
                     String key = its.next();
                     JSONArray array = dataJson.optJSONArray(key);
                     List<DaTaoKeDetail> detailList = new ArrayList<>();
                     for (int n = 0; n < array.size(); n++) {
                        detailList.add(new DaTaoKeDetail(array.optJSONObject(n).optLong("id")));
                     }
                     list.add(new DingDongQiangDTO(key, detailList));
                  }
               }
            } catch (Exception e) {
               e.printStackTrace();
            }
         }
      }
      return list;
   }
   //
   public static List<TaoBaoCoupon> getRecommendCouple() {
      List<TaoBaoCoupon> couponList = new ArrayList<>();