yujian
2019-01-22 88b54772dbcf5ecab1e2316e4e4626ac901b8908
fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoBaoUtil.java
@@ -1245,10 +1245,7 @@
         }
         return parsePhoneTmAndTb(id);
      } catch (Exception e) {
         try {
            LogHelper.errorDetailInfo(e, "无法解析到淘宝商品ID", burl);
         } catch (Exception e1) {
         }
         LogHelper.error("无法解析到淘宝商品ID:"+burl);
         return null;
      }
@@ -1592,37 +1589,44 @@
    * @return
    */
   public static List<ImageInfo> getTBDetailImageWithSizev2(Long auctionId) {
   public static List<ImageInfo> getTBDetailImageWithSizev2(Long auctionId, ProxyIP ip) {
      List<ImageInfo> imgList = new ArrayList<>();
      try {
         Map<String, String> headers = new HashMap<>();
         headers.put("User-Agent",
               "Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1");
         headers.put("Referer", "https://detail.tmall.com/item.htm?id=" + auctionId);
         String url = String.format("https://hws.m.taobao.com/cache/desc/5.0?id=" + auctionId);
         String result = HttpUtil.get(url);
         JSONObject data = JSONObject.fromObject(result);
         String result = HttpUtil.get(url, headers, ip);
         if (!StringUtil.isNullOrEmpty(result)) {
            JSONObject data = JSONObject.fromObject(result);
         JSONArray array = data.optJSONObject("wdescContent").optJSONArray("pages");
         if (array != null) {
            String html = "";
            for (int i = 0; i < array.size(); i++) {
               String itemStr = array.optString(i).replace("<img", "<a").replace("</img>", "<a>");
               html += itemStr;
            }
            Document doc = Jsoup.parse(html);
            Elements items = doc.getElementsByTag("a");
            for (int i = 0; i < items.size(); i++) {
               ImageInfo img = new ImageInfo();
               Element item = items.get(i);
               if (StringUtil.isNullOrEmpty(item.ownText()))
                  continue;
               if (!StringUtil.isNullOrEmpty(item.attr("size"))) {
                  img.setWidth(Integer.parseInt(item.attr("size").split("x")[0]));
                  img.setHeight(Integer.parseInt(item.attr("size").split("x")[1]));
            JSONArray array = data.optJSONObject("wdescContent").optJSONArray("pages");
            if (array != null) {
               String html = "";
               for (int i = 0; i < array.size(); i++) {
                  String itemStr = array.optString(i).replace("<img", "<a").replace("</img>", "<a>");
                  html += itemStr;
               }
               if (item.ownText().startsWith("http"))
                  img.setPicture(item.ownText().trim());
               else
                  img.setPicture("http:" + item.ownText().trim());
               if (img != null && img.getPicture() != null && img.getPicture().endsWith(".jpg"))
                  imgList.add(img);
               Document doc = Jsoup.parse(html);
               Elements items = doc.getElementsByTag("a");
               for (int i = 0; i < items.size(); i++) {
                  ImageInfo img = new ImageInfo();
                  Element item = items.get(i);
                  if (StringUtil.isNullOrEmpty(item.ownText()))
                     continue;
                  if (!StringUtil.isNullOrEmpty(item.attr("size"))) {
                     img.setWidth(Integer.parseInt(item.attr("size").split("x")[0]));
                     img.setHeight(Integer.parseInt(item.attr("size").split("x")[1]));
                  }
                  if (item.ownText().startsWith("http"))
                     img.setPicture(item.ownText().trim());
                  else
                     img.setPicture("http:" + item.ownText().trim());
                  if (img != null && img.getPicture() != null && img.getPicture().endsWith(".jpg"))
                     imgList.add(img);
               }
            }
         }