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
  • 相关阅读:
    软件工程课程总结
    团队-Forward团队一阶段互评
    《Forward团队-爬虫豆瓣top250项目-开发文档》
    《结对-结对编程项目作业名称-结对项目总结》
    《结对-结对编项目作业名称-最终程序》
    《结对-结对编项目作业名称-测试过程》
    《20171125-构建之法:现代软件工程-阅读笔记》
    《软件工程课程总结》
    团队编程项目作业6-程序维护
    团队编程项目作业5-小组评分
  • 原文地址:https://www.cnblogs.com/yidanda888/p/12768351.html
Copyright © 2011-2022 走看看