diff --git a/类库/Api.Framework/Tools/TBHelper.cs b/类库/Api.Framework/Tools/TBHelper.cs index f518f29..39aaf7c 100644 --- a/类库/Api.Framework/Tools/TBHelper.cs +++ b/类库/Api.Framework/Tools/TBHelper.cs @@ -840,11 +840,20 @@ namespace Api.Framework.Tools var regUrl = Regex.Match(url, @"(yukhj.com|m.tb.cn|m.yeeoq.top|m.uqlsi|m.rijni|m.gkqmj|m.mulwt|uland\\.taobao\\.com|sjtm.me|aa5d.com|d11a.com|f61[a-z].com|92db.com|yqt.so|e22a.com|f61b.com|detail.m.tmall.hk|k.83jie.com|ewqcxz.com|items.alitrip.com|tmqd.me|detail.tmall.hk|url.cn|taobao.com|mashort.cn|tmall.com|tb.cn|detail.yao.95095.com|laiwang.com|dwz.cn|juhuasuan.com|detail.m.tmall.com|zmnxbc.com|s.click.taobao|detail.liangxinyao.com|m.tb.cn)"); if (regUrl.Success) { + + item_id = getMTbCn(url, api); + if (!string.IsNullOrWhiteSpace(item_id)) + { + return item_id; + } + var html = string.Empty; for (int i = 0; i < 3; i++) { var http = new HttpHelper(); html = http.GetHtml(url).Html; + LogHelper.GetSingleObj().Error("淘宝请求", $"{url} => {html}"); + if (html.Contains("超时操作")) Thread.Sleep(500); else break; @@ -1127,6 +1136,64 @@ namespace Api.Framework.Tools return string.Empty; } + private string getMTbCn(string url, AlimamaApi api) + { + try + { + if (!url.ToLower().Contains("m.tb.cn")) + { + return string.Empty; + } + + for (int i = 0; i < 3; i++) + { + HttpHelper http = new HttpHelper(); + HttpItem item = new HttpItem() + { + URL = url, + Method = "GET", + Timeout = 10000, + ReadWriteTimeout = 30000, + IsToLower = false, + UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:18.0) Gecko/20100101 Firefox/18.0", + Accept = "text/html, application/xhtml+xml, */*", + ContentType = "application/x-www-form-urlencoded", + Referer = "", + Allowautoredirect = true, + AutoRedirectCookie = false, + Postdata = "" + }; + HttpResult result = http.GetHtml(item); + string html = result.Html; + + LogHelper.GetSingleObj().Error("淘宝解析请求", $"{url} =>> {html}"); + + var item_id = string.Empty; + + var reg = Regex.Match(html, @"var url = '(?.*?)';"); + if (reg.Success) + { + var oriUrl = reg.Groups["url"].Value; + if (string.IsNullOrWhiteSpace(oriUrl)) + { + return "00000"; + } + item_id = CouponByItemId(oriUrl, api); + } + if (string.IsNullOrWhiteSpace(item_id)) + item_id = FindTbItemIdByStr(html); + if (!string.IsNullOrWhiteSpace(item_id)) + return item_id; + Thread.Sleep(500); + } + } + catch (Exception ex) + { + LogHelper.GetSingleObj().Error("淘宝解析请求异常", $"{url} -> {ex.Message}"); + } + return string.Empty; + } + private string GetItemInfoByPass(string mess, List tklTmps, AlimamaApi api, string[] pids = null) { var item_id = string.Empty;