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
  • 相关阅读:
    PHP中获取当前页面的URL信息
    $_POST和$GLOBALS['HTTP_RAW_POST_DATA'] 的区别
    curl模拟ip和来源进行网站采集的实现方法
    mysql修改root密码的几种方法
    微信小程序实现支付功能
    git获取远程服务器的指定分支
    mysql函数技巧整理
    sql 查询目标数据库中所有的表以其关键信息
    SET NOCOUNT ON
    C# CultureInfo中常用的InvariantCulture
  • 原文地址:https://www.cnblogs.com/yidanda888/p/12768351.html
Copyright © 2011-2022 走看看