protected override void CheckDict() { var listToDelete = new List <WebProxy>(); foreach (var host in ProxyList) { CookieDictionary.Add(host, new CachedArray <CookieContainer>(1000 * 60 * 10, () => { try { var cookies = new CookieCollection(); var result = new CookieContainer(); using (var client = new GetWebClient(host, cookies)) { client.Headers["Referer"] = $"{Host.Replace("www", "play")}NewIndex?act=hdpou&webskintype=2"; var r = client.DownloadString($"{Host.Replace("www", "play")}onebook?act=hdpou"); cookies.Add(client.CookieCollection); var parser = new HtmlParser(); var results = parser.Parse(r); var verfCode = results.QuerySelector("input[name=__RequestVerificationToken]").GetAttribute("value"); cookies.Add(new Cookie("VerfCode", verfCode, "/", new Uri(Host).Host)); } result.Add(cookies); return(result); } catch (Exception) { listToDelete.Add(host); ConsoleExt.ConsoleWriteError($"Dafabet delete address {host.Address} listToDelete {listToDelete.Count}"); } return(null); })); } var tasks = ProxyList.AsParallel().Select(host => Task.Factory.StartNew(state => CookieDictionary[host].GetData(), host)).ToArray(); Task.WaitAll(tasks); foreach (var host in listToDelete) { CookieDictionary.Remove(host); ProxyList.Remove(host); } }
protected override void CheckDict() { var listToDelete = new List <WebProxy>(); foreach (var host in ProxyList) { CookieDictionary.Add(host, new CachedArray <CookieContainer>(1000 * 3600 * 3, () => { try { var cc = new CookieContainer(); ConsoleExt.ConsoleWriteError($"Favbet check address {host.Address}"); cc.Add(PassCloudFlare(host)); using (var wc = new Extensions.WebClientEx(host, cc)) { wc.Headers["User-Agent"] = GetWebClient.DefaultUserAgent; wc.DownloadString(Host + "en/live/"); //var d = wc.ResponseHeaders["Set-Cookie"]; //foreach (var match in d.Split(',').Select(singleCookie => Regex.Match(singleCookie, "(.+?)=(.+?);")).Where(match => match.Captures.Count != 0)) //{ // var name = match.Groups[1].ToString(); // var value = match.Groups[2].ToString(); // if (name == "PHPSESSID") cc.Add(new Cookie(name, value) { Domain = ProxyHelper.GetDomain(Host) }); //} cc.Add(wc.CookieContainer.GetAllCookies()); } return(cc); } catch (Exception e) { listToDelete.Add(host); ConsoleExt.ConsoleWriteError($"Favbet delete address {host.Address} listToDelete {listToDelete.Count}"); } return(null); })); } var tasks = ProxyList.AsParallel().Select(host => Task.Factory.StartNew(state => CookieDictionary[host].GetData(), host)).ToArray(); //foreach (var host in ProxyList) //{ // CookieDictionary[host].GetData(); //} Task.WaitAll(tasks); foreach (var host in listToDelete) { CookieDictionary.Remove(host); ProxyList.Remove(host); } }