yujian
2019-09-27 c1f208bb47427f36f556e27373f72f8e6f2587a8
fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoBaoUtil.java
@@ -14,6 +14,9 @@
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import javax.script.Invocable;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
@@ -57,7 +60,7 @@
import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.goods.TaoBaoLinkService;
import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService;
import com.yeshi.fanli.service.inter.order.config.HongBaoManageService;
import com.yeshi.fanli.tag.PageEntity;
import com.yeshi.fanli.util.AESUtil;
import com.yeshi.fanli.util.Constant;
@@ -1918,10 +1921,47 @@
      return true;
   }
   public static void main(String[] args) {
      String s = channelMap.get("3");
      System.out.println(s);
   /**
    * 查询天猫商品图片、标题
    * @param auctionId
    * @return
    */
   public static TaoBaoGoodsBrief getTmallGoodsInfo(String auctionId) {
      TaoBaoGoodsBrief taoBaoGoodsBrief = null;
      try {
         Connection connect = Jsoup.connect(String.format(TM_PHONE_URL, auctionId));
         Document document = connect.get();
         Elements elements = document.getElementsByTag("script");
         if (elements.size() >= 0) {
            for (int i = 0; i < elements.size(); i++) {
               String content = elements.get(i).toString();
               if (content.contains("var _DATA_Mdskip")) {
                  content = content.replace("<script>", "");
                  content = content.replace("</script>", "");
                  content+=";function getData(){ var json={title:_DATA_Mdskip.item.title,pictUrl:_DATA_Mdskip.item.videoDetail.videoThumbnailURL};   return JSON.stringify(json);}";
                  ScriptEngineManager manager = new ScriptEngineManager();
                  ScriptEngine engine = manager.getEngineByName("javascript");
                  engine.eval(content);
                  if (engine instanceof Invocable) {
                     Invocable in = (Invocable) engine;
                     JSONObject json = JSONObject.fromObject(in.invokeFunction("getData"));
                     Object title = json.get("title");
                     Object pictUrl = json.get("pictUrl");
                     taoBaoGoodsBrief = new TaoBaoGoodsBrief();
                     taoBaoGoodsBrief.setTitle(title.toString());
                     taoBaoGoodsBrief.setPictUrl(pictUrl.toString());
                  }
                  break;
               }
            }
         }
      } catch (Exception e) {
         e.printStackTrace();
      }
      return taoBaoGoodsBrief;
   }
}