From ee88b54979c633a4ade518d4c124a2d07d378562 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期五, 11 十月 2019 10:56:18 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/div' into div --- fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoBaoUtil.java | 69 ++++++++++++++++++++++++++++++++++ 1 files changed, 69 insertions(+), 0 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 da901df..15f1e5e 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 @@ -3,6 +3,7 @@ import java.io.UnsupportedEncodingException; import java.lang.reflect.Type; import java.math.BigDecimal; +import java.net.URLDecoder; import java.net.URLEncoder; import java.util.ArrayList; import java.util.HashMap; @@ -21,7 +22,9 @@ import javax.xml.parsers.DocumentBuilderFactory; import org.apache.commons.httpclient.HttpClient; +import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager; import org.apache.commons.httpclient.methods.GetMethod; +import org.apache.commons.httpclient.params.HttpMethodParams; import org.jsoup.Connection; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; @@ -1334,6 +1337,41 @@ return taoBaoGoodsBrief; } + public static String getGoodsIdByPhoneShareUrl(String burl) { + try { + Connection connect = Jsoup.connect(burl); + Document document = connect.get(); + org.jsoup.nodes.Element element = document.getElementsByTag("head").get(0).getElementsByTag("Script") + .get(1); + String html = element.toString(); + int index = html.indexOf("var url = "); + int endIndex = html.lastIndexOf("'"); + html = html.substring(index, endIndex); + int index2 = html.indexOf("'"); + html = html.substring(index2 + 1); + int indexId = html.indexOf("id="); + String id = ""; + if (html.contains("a.m.taobao.com")) { + indexId = html.indexOf("com/i"); + html = html.substring(indexId); + html = html.substring(5, html.indexOf(".")); + id = html; + } else { + String reg = "[?|&]{1}[i]{1}[d]{1}[=]{1}\\d+[&]?"; + Pattern p = Pattern.compile(reg); + Matcher matcher = p.matcher(html); + if (matcher.find()) { + id = matcher.group(); + } + id = id.substring(id.indexOf("=") + 1, id.lastIndexOf("&")); + } + return id; + } catch (Exception e) { + LogHelper.error("鏃犳硶瑙f瀽鍒版窐瀹濆晢鍝両D:" + burl); + return null; + } + } + /** * 鑾峰彇鍟嗗搧鐨勭敤鎴峰垎鎴愭瘮渚� * @@ -1964,6 +2002,37 @@ } return taoBaoGoodsBrief; } + + + + /** + * 鎶栭煶杩斿埄local 鑾峰彇鐪熷疄娣樺疂閾炬帴 + * @param url https://s.click.taobao.com/t?e=m%3D2%26s%3DT9DFpHQCT7Rw4vFB6t2Z2ueEDrYVVa64XoO8tOebS+dRAdhuF14FMR8 + * @return + */ + public static String getRealUrl(String url) { + if (StringUtil.isNullOrEmpty(url)) + return null; + + try { + HttpClient client = new HttpClient(new MultiThreadedHttpConnectionManager()); + client.getHttpConnectionManager().getParams().setConnectionTimeout(10000); + client.getParams().setParameter(HttpMethodParams.USER_AGENT,"Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)"); // 璁╂湇鍔″櫒璁や负鏄疘E + GetMethod get = new GetMethod(url); + get.setFollowRedirects(false); // 绂佹鑷姩閲嶅畾鍚� + int iGetResultCode = client.executeMethod(get); + String location = get.getResponseHeader("location").getValue(); // 鎵撳嵃鍦板潃 + GetMethod get2 = new GetMethod(URLDecoder.decode(location.split("tu=")[1])); + get2.addRequestHeader("Referer", location); + get2.setFollowRedirects(false); // 绂佹鑷姩閲嶅畾鍚� + int iGetResultCode2 = client.executeMethod(get2); + return get2.getResponseHeader("location").getValue(); // 鐪熷疄鍦板潃 + } catch (Exception ex) { + ex.printStackTrace(); + } + return null; + } + /** * 娣樺彛浠よ繃婊� -- Gitblit v1.8.0