From 69bee82b81626b82b7f39f0e459e4f56b1699b51 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期三, 13 三月 2019 12:02:16 +0800 Subject: [PATCH] 正式数据库修改 --- fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoBaoUtil.java | 134 ++++++++++++++++++++++++++++++++++---------- 1 files changed, 104 insertions(+), 30 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoBaoUtil.java b/fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoBaoUtil.java index a51c31f..904a707 100644 --- a/fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoBaoUtil.java +++ b/fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoBaoUtil.java @@ -31,6 +31,7 @@ import org.w3c.dom.NodeList; import org.yeshi.utils.HttpUtil; import org.yeshi.utils.NumberUtil; +import org.yeshi.utils.entity.ProxyIP; import org.yeshi.utils.taobao.TbImgUtil; import com.google.gson.Gson; @@ -56,6 +57,8 @@ import com.yeshi.fanli.service.inter.goods.TaoBaoLinkService; import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService; import com.yeshi.fanli.tag.PageEntity; +import com.yeshi.fanli.util.AESUtil; +import com.yeshi.fanli.util.Constant; import com.yeshi.fanli.util.MoneyBigDecimalUtil; import com.yeshi.fanli.util.StringUtil; import com.yeshi.fanli.util.TaoBaoHttpUtil; @@ -928,12 +931,14 @@ tg.setId(tb.getId()); tg.setAuctionId(tb.getAuctionId()); tg.setBiz30day(tb.getBiz30day()); + tg.setSalesCount(TaoBaoUtil.getSaleCount(tb.getBiz30day())); tg.setTitle(tb.getTitle()); - tg.setPictUrl(tb.getPictUrl() + "_200x200"); + tg.setPictUrl(tb.getPictUrl()); tg.setZkPrice(tb.getZkPrice()); tg.setAuctionUrl(tb.getAuctionUrl()); tg.setReservePrice(tb.getReservePrice()); tg.setUserType(tb.getUserType()); + tg.setImgList(tb.getImgList()); if (tb.getCouponAmount().compareTo(BigDecimal.valueOf(0)) == 1) { TaoBaoQuanInfo quanInfo = new TaoBaoQuanInfo(); @@ -1242,10 +1247,7 @@ } return parsePhoneTmAndTb(id); } catch (Exception e) { - try { - LogHelper.errorDetailInfo(e, "鏃犳硶瑙f瀽鍒版窐瀹濆晢鍝両D", burl); - } catch (Exception e1) { - } + LogHelper.error("鏃犳硶瑙f瀽鍒版窐瀹濆晢鍝両D:" + burl); return null; } @@ -1589,36 +1591,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()); - 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); + } + } } @@ -1684,6 +1694,7 @@ taoBaoGoods.setCouponStartFee(commonGoods.getCouponStartPrice()); taoBaoGoods.setCouponTotalCount(commonGoods.getCouponTotalCount()); taoBaoGoods.setPictUrl(commonGoods.getPicture()); + taoBaoGoods.setPictUrlWhite(commonGoods.getPictureWhite()); taoBaoGoods.setSellerId(commonGoods.getSellerId()); taoBaoGoods.setShopTitle(commonGoods.getSellerName()); taoBaoGoods.setTitle(commonGoods.getTitle()); @@ -1695,6 +1706,69 @@ return taoBaoGoods; } + /** + * 鑾峰彇娣樺疂鑱旂洘鐨勬巿鏉冮摼鎺� + * + * @param appKey + * -搴旂敤Key + * @param callBackUrl + * -鍥炶皟閾炬帴 + * @param uid-鐢ㄦ埛ID + * @return + */ + public static String getTaoBaoUnionAuthUrl(String appKey, String callBackUrl, Long uid, String source) { + if (uid == null) + return null; + long timestamp = System.currentTimeMillis(); + JSONObject json = new JSONObject(); + json.put("u", uid); + json.put("t", timestamp); + json.put("s", source); + String url = null; + try { + url = String.format( + "https://oauth.taobao.com/authorize?response_type=code&client_id=%s&redirect_uri=%s&state=%s&view=wap", + appKey, callBackUrl, + URLEncoder.encode(AESUtil.encrypt(json.toString(), Constant.UIDAESKEY), "UTF-8")); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } + return url; + } + + public static TaoBaoGoodsBrief getSimpleGoodsBrief(Long actionId) { + JSONObject data = new JSONObject(); + data.put("itemNumId", actionId + ""); + + String url = ""; + try { + url = String.format("https://acs.m.taobao.com/h5/mtop.taobao.detail.getdetail/6.0/?data=%s", + URLEncoder.encode(data.toString(), "UTF-8")); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } + + String result = HttpUtil.get(url); + JSONObject resultOBJ = JSONObject.fromObject(result); + if (resultOBJ.optJSONObject("data") != null) { + data = resultOBJ.optJSONObject("data"); + JSONObject item = data.optJSONObject("item"); + JSONObject seller = data.optJSONObject("seller"); + TaoBaoGoodsBrief goods = new TaoBaoGoodsBrief(); + goods.setAuctionId(item.optLong("itemId")); + goods.setTitle(item.optString("title")); + if (item.optJSONArray("images") != null && item.optJSONArray("images").size() > 0) + { + String picture=item.optJSONArray("images").optString(0); + goods.setPictUrl(picture.startsWith("http")?picture:"https:"+picture); + } + goods.setSellerId(seller.optLong("shopId")); + goods.setShopTitle(seller.optString("shopName")); + return goods; + } + return null; + } + public static void main(String[] args) { String s = channelMap.get("3"); System.out.println(s); -- Gitblit v1.8.0