private List <ProxyIpDto> GrabWest(PerformContext context) { var proxyIp = new List <ProxyIpDto>(); try { context.WriteLine("->西刺"); var http = new HttpRequestProvider(); var url = "http://www.xicidaili.com/nn/1"; // 西刺 var result = http.Get(url); if (result.IsNotBlank()) { var count = 0; var regex = @"<td>(\d+\.\d+\.\d+\.\d+)</td>\s+<td>(\d+)</td>"; var mstr = Regex.Match(result, regex); while (mstr.Success) { var ip = new ProxyIpDto { Ip = mstr.Groups[1].Value, Port = mstr.Groups[2].Value.ToInt() }; proxyIp.Add(ip); mstr = mstr.NextMatch(); count++; } context.WriteLine($"->西刺,抓取到{count}条"); } } catch (Exception ex) { context.WriteLine($"->西刺,发生错误:{ex.Message}"); Log.Error(ex); } return(proxyIp); }
private List <ProxyIpDto> Grab66(PerformContext context) { var http = new HttpRequestProvider(); var proxyIp = new List <ProxyIpDto>(); context.WriteLine("->66Ip"); try { var url = "http://www.66ip.cn/nmtq.php?getnum=100&isp=0&anonymoustype=3&start=&ports=&export=&ipaddress=&area=1&proxytype=2&api=66ip"; // 66ip var result = http.Get(url); if (result.IsNotBlank()) { var count = 0; var regex = @"(\d+\.\d+\.\d+\.\d+):(\d+)"; var mstr = Regex.Match(result, regex); while (mstr.Success) { var ip = new ProxyIpDto { Ip = mstr.Groups[1].Value, Port = mstr.Groups[2].Value.ToInt() }; proxyIp.Add(ip); mstr = mstr.NextMatch(); count++; } context.WriteLine($"->66Ip,抓取到{count}条"); } } catch (Exception ex) { context.WriteLine($"->66Ip,发生错误:{ex.Message}"); Log.Error(ex); } return(proxyIp); }