public static bool IsCampaignExits(CampainsData campains, CookieContainer alimamacc, ref string keeperid) { try { bool isExits = false; foreach (CampainsData.Datum campain in campains.data) { if (campain.Exist) { isExits = true; break; } } return(isExits); } catch (Exception ex) { return(false); } // string resulthtml = ""; // if (!resulthtml.Contains("Exist")) return true; // if (resulthtml.Contains("Exist\":true")) return true; // HttpHelper1.GetStringInTwoKeyword(resulthtml, ref keeperid, "ShopKeeperID\":", ",\"", 0); // Regex reg = new Regex("CampaignName\":\".*\",\""); // MatchCollection mc = reg.Matches(resulthtml); // foreach (Match match in mc) // { // string campaignname = match.Value.Replace("CampaignName\":\"", "").Replace("\",\"CampaignType", "") + "\r\n"; // File.AppendAllText("taobaoke定向计划.txt", campaignname); // } // return false; //} //catch (Exception) //{ // return true; //} }
public static CampainsData GetCampainByTBItemID(string itemid, string tbtoken, string pv_id, ref CookieContainer alimamacc, ref string keeperid) { string url = "http://pub.alimama.com/pubauc/getCommonCampaignByItemId.json?itemId=" + itemid + "&t=" + HttpHelper1.GetTicks() + "&_tb_token_=" + tbtoken + "&pvid=" + pv_id; string resulthtml = HttpHelper1.SendDataByGET(url, ref alimamacc); while (resulthtml.Contains("查询商品佣金出错")) { Thread.Sleep(30 * 1000); resulthtml = HttpHelper1.SendDataByGET(url, ref alimamacc); } if (resulthtml.Contains("为空")) { return(null); } else if (resulthtml.Contains("阿里妈妈"))//返回阿里妈妈首页,登录失效 { alimamacc = Alimama.Login(); resulthtml = HttpHelper1.SendDataByGET(url, ref alimamacc); } HttpHelper1.GetStringInTwoKeyword(resulthtml, ref keeperid, "ShopKeeperID\":", ",\"Properties", 0); CampainsData campains = Newtonsoft.Json.JsonConvert.DeserializeObject <CampainsData>(resulthtml); return(campains); }
/// <summary> /// 自动申请定向计划 /// </summary> /// <param name="campaignid">定向计划ID</param> /// <returns>true:申请成功,false:没有定向计划</returns> public static bool ApplyCampaign(string resulthtml, string itemurl, ref CookieContainer alimamacc, ref double maxRate) { try { string campaignstrs = ""; HttpHelper1.GetStringInTwoKeyword(resulthtml, ref campaignstrs, "tkSpecialCampaignIdRateMap\":", ",\"eventCreatorId", 0); if (campaignstrs.StartsWith("null")) { return(false); //如果没有定向计划,退出 } string pv_id = ""; HttpHelper1.GetStringInTwoKeyword(resulthtml, ref pv_id, "pvid\":\"", "\",\"docsfound", 0); string itemid = ""; HttpHelper1.GetStringInTwoKeyword(resulthtml, ref itemid, "auctionId\":", ",\"", 0); string keeperid = ""; string maxratestr = ""; HttpHelper1.GetStringInTwoKeyword(resulthtml, ref maxratestr, "tkRate\":", "\"", 0); maxratestr = maxratestr.Replace(",", ""); CookieCollection ccl = alimamacc.GetCookies(new Uri("http://alimama.com")); string tbtoken = ccl["_tb_token_"].Value; string refer = "http://pub.alimama.com/promo/search/index.htm?queryType=2&q=" + HttpUtility.UrlEncode(itemurl); CampainsData campainsdata = Alimama.GetCampainByTBItemID(itemid, tbtoken, pv_id, ref alimamacc, ref keeperid); if (campainsdata == null) { return(false); } //if (IsCampaignExits(campainsdata, alimamacc,ref keeperid)) return false;//如果申请过定向计划,退出 double maxCommission = 0; maxCommission = Convert.ToDouble(maxratestr); double maxManualCommission = 0; CampainsData.Datum maxCampaign = new CampainsData.Datum(); CampainsData.Datum maxManualCampaign = new CampainsData.Datum(); //挑选出自动审核计划中,佣金最高的一个 foreach (CampainsData.Datum campain in campainsdata.data) { if (campain.AvgCommission == "-") { continue; } double commission = Convert.ToDouble(campain.AvgCommission.Replace(" %", "")); if (campain.manualAudit == 1)//如果需要人工审核 { if (commission > maxManualCommission) { maxManualCommission = commission; maxManualCampaign = campain; } } else { if (commission > maxCommission) { maxCommission = commission; maxCampaign = campain; } } } if (!maxCampaign.Exist && maxCampaign.CampaignID != 0) { ApplyCampaign(maxCampaign.CampaignID.ToString(), keeperid, pv_id, refer, alimamacc);//自动审核最高分成比例的计划一定要申请 } maxRate = maxCommission; if (maxCommission < maxManualCommission) { if (!maxManualCampaign.Exist) { ApplyCampaign(maxManualCampaign.CampaignID.ToString(), keeperid, pv_id, refer, alimamacc);//如果人工审核的计划分成比例要更高,则再申请人工审核计划 if (maxManualCampaign.CampaignName.Contains("QQ")) { File.AppendAllText("taobaoke定向计划.txt", "分成比例:" + maxManualCampaign.AvgCommission + " 计划名称:" + maxManualCampaign.CampaignName + "\r\n"); } } else { //如果人工审核计划已经通过审核 maxRate = maxManualCommission; } } //string[] campains = campaignstrs.Split(','); //foreach (string campain in campains) //{ // string[] campainpro = campain.Split(':'); // string campaignid = campainpro[0].Replace("{","").Replace("\"",""); // string campaignbili = campainpro[1].Replace("\"","").Replace("}", ""); // bool isSuc = ApplyCampaign(campaignid, keeperid,pv_id,refer, alimamacc); //} return(true); } catch (Exception ex) { throw; } }