zoukankan      html  css  js  c++  java
  • c# 代理IP获取通用方法

    c# 代理IP获取通用方法

    调用:

           ConcurrentQueue<string> proxyIpQueue = new ConcurrentQueue<string>();
                    Grab_ProxyIp(proxyIpQueue);

    返回结果:

    一下是获取代理IP集合的方法:

            #region 生产IP 代理 对象
            private void Grab_ProxyIp(ConcurrentQueue<string> proxyIpQueue)
            {
                HashSet<string> proxyIp = new HashSet<string>();
    
                HttpHelper http = new HttpHelper();
                HttpItem para = new HttpItem();
                para.Timeout = 1000 * 10;
                para.Method = "GET";
    
                int count = 0;
                para.URL = "http://www.xicidaili.com/nn/1"; // 西刺
                RetryFunc(() =>
                {
                    HttpResult result = http.GetHtml(para);
                    if (result.StatusCode == System.Net.HttpStatusCode.OK)
                    {
                        string regex = @"<td>(d+.d+.d+.d+)</td>s+<td>(d+)</td>";
                        Match mstr = Regex.Match(result.Html, regex);
                        while (mstr.Success && count < 20)
                        {
                            proxyIp.Add(mstr.Groups[1].Value + ":" + mstr.Groups[2].Value);
                            mstr = mstr.NextMatch();
                            count++;
                        }
    
                        return true;
                    }
                    else
                    {
                        return false;
                    }
                }, 10);
    
                count = 0;
                para.URL = "http://ip84.com/dlgn"; // IP巴士
                RetryFunc(() =>
                {
                    HttpResult result = http.GetHtml(para);
                    if (result.StatusCode == System.Net.HttpStatusCode.OK)
                    {
                        string regex = @"<td>(d+.d+.d+.d+)</td>s+<td>(d+)</td>";
                        Match mstr = Regex.Match(result.Html, regex);
                        while (mstr.Success && count < 10)
                        {
                            proxyIp.Add(mstr.Groups[1].Value + ":" + mstr.Groups[2].Value);
                            mstr = mstr.NextMatch();
                            count++;
                        }
    
                        return true;
                    }
                    else
                    {
                        return false;
                    }
                }, 10);
    
                count = 0;
                para.URL = "http://www.ip3366.net/free/?stype=1"; // 云代理
                RetryFunc(() =>
                {
                    HttpResult result = http.GetHtml(para);
                    if (result.StatusCode == System.Net.HttpStatusCode.OK)
                    {
                        string regex = @"<td>(d+.d+.d+.d+)</td>s+<td>(d+)</td>";
                        Match mstr = Regex.Match(result.Html, regex);
                        while (mstr.Success && count < 10)
                        {
                            proxyIp.Add(mstr.Groups[1].Value + ":" + mstr.Groups[2].Value);
                            mstr = mstr.NextMatch();
                            count++;
                        }
    
                        return true;
                    }
                    else
                    {
                        return false;
                    }
                }, 10);
    
                count = 0;
                para.URL = "http://www.iphai.com/free/ng"; // IP海
                RetryFunc(() =>
                {
                    HttpResult result = http.GetHtml(para);
                    if (result.StatusCode == System.Net.HttpStatusCode.OK)
                    {
                        string regex = @"<td>s+(d+.d+.d+.d+)s+</td>s+<td>s+(d+)s+</td>";
                        Match mstr = Regex.Match(result.Html, regex);
                        while (mstr.Success && count < 10)
                        {
                            proxyIp.Add(mstr.Groups[1].Value + ":" + mstr.Groups[2].Value);
                            mstr = mstr.NextMatch();
                            count++;
                        }
    
                        return true;
                    }
                    else
                    {
                        return false;
                    }
                }, 10);
    
                count = 0;
                para.URL = "http://www.66ip.cn/nmtq.php?getnum=10&isp=0&anonymoustype=3&start=&ports=&export=&ipaddress=&area=1&proxytype=2&api=66ip"; // 66ip
                RetryFunc(() =>
                {
                    HttpResult result = http.GetHtml(para);
                    if (result.StatusCode == System.Net.HttpStatusCode.OK)
                    {
                        string regex = @"(d+.d+.d+.d+):(d+)<br/>";
                        Match mstr = Regex.Match(result.Html, regex);
                        while (mstr.Success && count < 10)
                        {
                            proxyIp.Add(mstr.Groups[1].Value + ":" + mstr.Groups[2].Value);
                            mstr = mstr.NextMatch();
                            count++;
                        }
    
                        return true;
                    }
                    else
                    {
                        return false;
                    }
                }, 10);
    
                foreach (var item in proxyIp)
                {
                    proxyIpQueue.Enqueue(item);
                }
            } 
            #endregion
  • 相关阅读:
    202104-2 邻域均值
    202104-1 灰度直方图
    1384. 饲料调配
    1381. 阶乘
    264. 丑数 II
    1380. 邮票
    42 新安装的idea必备设置
    41 cmd中解除被占用的端口
    40 文件在线预览
    39 进度条使用
  • 原文地址:https://www.cnblogs.com/yidanda888/p/12768351.html
Copyright © 2011-2022 走看看