private static void KadLingQuan(int index) { string domain = "http://user.360kad.com"; string couponUrl = string.Format("{0}/coupon", domain); string userCookie = "bdshare_firstime=1455627982618; __juid=1455628956347654972179793; __newnuid=AAAAAFbDIrpD9gZ9IAgvAg==; KadGuide_4743619=False; kad_cart2=cookie_0f6439019fb44a54b1d5bd03d41c1ee7; KadGuide_3331197=False; Hm_lvt_9dc25c72b2848d6257aafcf33ec1a6db=1455627686,1455716978,1456241460,1456327203; Hm_lpvt_9dc25c72b2848d6257aafcf33ec1a6db=1456327203; newhisSearch=%5B%7B%22title%22%3A%22%E4%B9%90%E5%BF%83%E4%BD%93%E9%87%8D%E8%84%82%E8%82%AA%E6%B5%8B%E9%87%8F%E4%BB%AA%22%7D%5D; s_cc=true; s_fid=5C190A8E89FF447E-04661E7397ACE3AC; s_nr=1456327206908-Repeat; s_temp=Repeat; s_sq=gdkad-web-prd%3D%2526pid%253Dsearch.360kad.com%25253Ahome%2526pidt%253D1%2526oid%253Dhttp%25253A%25252F%25252Fwww.360kad.com%25252Fproduct%25252F1010125350.shtml%25253Fkzone%25253Dkadse…%252525E5%252525BF%25252583%252525E4%252525BD%25252593%252525%2526ot%253DA; KadProductHistory=%5B%7B%22WareSkuCode%22%3A%221010125350%22%2C%22CreateAt%22%3A%22%2FDate(1456327204249)%2F%22%7D%2C%7B%22WareSkuCode%22%3A%2239370%22%2C%22CreateAt%22%3A%22%2FDate(1455717414693)%2F%22%7D%2C%7B%22WareSkuCode%22%3A%2269614%22%2C%22CreateAt%22%3A%22%2FDate(1455717251470)%2F%22%7D%2C%7B%22WareSkuCode%22%3A%222145%22%2C%22CreateAt%22%3A%22%2FDate(1455717046408)%2F%22%7D%2C%7B%22WareSkuCode%22%3A%2275571%22%2C%22CreateAt%22%3A%22%2FDate(1455629005953)%2F%22%7D%5D; KadCPS_Source=51fanli; KadCPS_Id=144915441; KadCPS_Url=http://www.360kad.com/; KadCPS_CID=D02ea1gx4itd25t39eu5; KadCPS_WI=4704756582; KadGuide_1280946910=False; KadBindPhone_1280946910=True; __utmt=1; CNZZDATA2913503=cnzz_eid%3D1069869852-1455626671-%26ntime%3D1456323051; __utma=1.234690889.1455627820.1455627820.1455627820.1; __utmb=1.32.10.1456326942; __utmc=1; __utmz=1.1455627820.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); Hm_lvt_7a942c91de8533c33ddabdacba23065b=1455716993,1456241631,1456326693,1456327358; Hm_lpvt_7a942c91de8533c33ddabdacba23065b=1456328153; K2_Web_User=13632254308; K2_Web_Token=SxVEGRfPtEYdlDC4A3uO+LTyIIPg9d3q25f+7RVhVSMpTo27QmzaK9yIVhEstchH5J5ru1PiBeLPFihzUQ3FWAQ5jK/JVUrps3vMoMydkorfWOkmoF/SiBRGu2rLLOLR2p2c//MztiLRGyNbSTL13B8Tjq79/cvgFEa7assunZwEEAEKahYIym8wEOKWQ7gfG5ikb5VQuQs="; var couponResult = HttpHelper.GetHtml(new HttpItem() { URL = couponUrl, Method = "get", Cookie = userCookie }); var doc = new HtmlDocument(); doc.LoadHtml(couponResult.Html); var nodes = doc.DocumentNode.SelectNodes("//*[@class=\"lingqu-btn\"]"); if (nodes == null || nodes.Count == 0) { Console.WriteLine("已领取完毕!"); return; } List<Task> taskList = new List<Task>(); List<string> prmCodes = new List<string>(); var prmCodeReg = new System.Text.RegularExpressions.Regex("\\d{5,40}"); foreach (var node in nodes) { string prmCode = prmCodeReg.Match(node.Attributes["onclick"].Value).ToString(); prmCodes.Add(prmCode); taskList.Add(Task.Factory.StartNew(() => { var result = new HttpHelper().GetHtml(new HttpItem() { URL = string.Format("{0}/Coupon/AddCusPrmote?procode={1}", domain, prmCode), Method = "get", Cookie = userCookie }); })); } Task.WaitAll(taskList.ToArray()); Console.WriteLine(string.Format("第{0}次领券成功,领取的优惠券为:\r\n{1}", index, string.Join(",", prmCodes))); index += 1; KadLingQuan(index); }
public ActionResult Index() { //下载 string url = "http://11185gz.com.cn/security/jcaptcha.jpg"; int qty = 30; string type = "nubia"; Task[] tasks = new Task[qty]; List<Image> imgs = new List<Image>(); for (int i = 0; i < qty; i++) { tasks[i] = Task.Factory.StartNew(() => { var result = new HttpHelper().GetHtml(new HttpItem() { URL = url.Contains("?") ? string.Format("{0}&t={1}", url, DateTime.Now.ToString("yyyyMMddHHmmsssss")) : string.Format("{0}?t={1}", url, DateTime.Now.ToString("yyyyMMddHHmmsssss")), Method = "Get", ResultType = ResultType.Byte }); using (MemoryStream ms = new MemoryStream(result.ResultByte)) { ms.Write(result.ResultByte, 0, result.ResultByte.Length); imgs.Add(Image.FromStream(ms, true)); } }); } Task.WaitAll(tasks); List<VCodeBinary> vCodeBinarys = new List<VCodeBinary>(); Dictionary<string, Image> dictCutImgs = new Dictionary<string, Image>(); foreach (var img in imgs) { try { var imgList = ImageProcessHelper.PreProcess(img, 1, img.Width / 4, img.Height); foreach (var cutImg in imgList) { string id = Guid.NewGuid().ToString("N"); vCodeBinarys.Add(new VCodeBinary() { Id = id, Code = ImageProcessHelper.GetBinaryCode(cutImg), Text = string.Empty, Type = type, CreateTime = DateTime.Now }); dictCutImgs.Add(id, cutImg); //cutImg.Save(string.Format(@"D:\USER\luojun\Desktop\vCode\{0}.jpg", id)); //cutImg.Dispose(); } img.Dispose(); } catch (Exception ex) { LogHelper.Log(ex); } } var liteDBHelper = new LiteDBHelper("VCode.db"); liteDBHelper.Insert<VCodeBinary>(vCodeBinarys); //相似分组 int rate = 85; Dictionary<string, List<VCodeBinary>> dictVCodeBinarys = new Dictionary<string, List<VCodeBinary>>(); foreach (var vCodeBinaryA in vCodeBinarys) { try { var codes = new List<VCodeBinary>() { vCodeBinaryA }; foreach (var vCodeBinaryB in vCodeBinarys) { int thisRate = ImageProcessHelper.CalcRate(vCodeBinaryA.Code, vCodeBinaryB.Code); if (thisRate >= rate) { codes.Add(vCodeBinaryB); } } dictVCodeBinarys.Add(vCodeBinaryA.Id, codes); } catch (Exception ex) { LogHelper.Log(ex); } } foreach (var key in dictVCodeBinarys.Keys) { string savePath = string.Format(@"H:\VCode\{0}", key); Directory.CreateDirectory(savePath); foreach (var vCodeBinary in dictVCodeBinarys[key]) { string imgFullName = Path.Combine(savePath, string.Format("{0}.jpg", vCodeBinary.Id)); dictCutImgs[vCodeBinary.Id].Save(imgFullName); //dictCutImgs[vCodeBinary.Id].Dispose(); } } return View(); }