kylin类库之获取代理IP

news/2024/7/19 9:30:07 标签: 爬虫
  1 namespace Kylin.GetHttpIp
  2 {
  3     public class kylinIp
  4     {
  5         ///爬虫获取网站的高匿代理IP
  6         ///目前使用的网站有:
  7         ///http://www.xdaili.cn/freeproxy
  8         ///http://www.xicidaili.com/nn/
  9         ///http://www.goubanjia.com/free/gngn/index.shtml
 10         ///
 11 
 12         ///第一个网站可以抓包:http://www.xdaili.cn/ipagent//freeip/getFreeIps?page=1&rows=10
 13         ///其他几个都要进页面
 14         ///
 15         HttpUtility http;
 16          
 17 
 18         public kylinIp()
 19         {
 20             http = new HttpUtility();
 21         }
 22         
 23 
 24         public string GetIPBy_xdaili()
 25         {
 26             string Url = "http://www.xdaili.cn/ipagent//freeip/getFreeIps?page=1&rows=10";
 27             try {
 28                 string Area_Html = http.GetHtmlText(Url);
 29                 JObject Area_Json = (JObject)JsonConvert.DeserializeObject(Area_Html);
 30                 for (int j = 0; j < Area_Json["RESULT"]["rows"].Count(); j++)
 31                 {
 32                     if (Area_Json["RESULT"]["rows"][0]["anony"].ToString() == "高匿")
 33                     {
 34                         string IP = Area_Json["RESULT"]["rows"][0]["ip"].ToString();
 35                         string Duankou = Area_Json["RESULT"]["rows"][0]["port"].ToString();
 36                         try
 37                         {
 38                             WebProxy proxyObject = new WebProxy(IP, int.Parse(Duankou));//str为IP地址 port为端口号 代理类
 39                             HttpWebRequest Req = (HttpWebRequest)WebRequest.Create("http://www.whatismyip.com.tw/"); // 61.183.192.5
 40                             Req.UserAgent = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; QQWubi 133; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; CIBA; InfoPath.2)";
 41                             Req.Proxy = proxyObject; //设置代理 
 42                             Req.Method = "GET";
 43                             HttpWebResponse Resp = (HttpWebResponse)Req.GetResponse();
 44                             string StringSub = "";
 45                             string OkStr = "";
 46                             Encoding code = Encoding.GetEncoding("utf-8");
 47                             using (StreamReader sr = new StreamReader(Resp.GetResponseStream(), code))
 48                             {
 49                                 string str1 = sr.ReadToEnd();//获取得到的网址html返回数据,这里就可以使用某些解析html的dll直接使用了,比如htmlpaser 
 50                                 if (str1.IndexOf(IP) > 0)
 51                                 {
 52                                     return IP + ":" + Duankou;
 53                                 }
 54                             }
 55                         }
 56                         catch { }
 57 
 58 
 59                     }
 60                 }
 61             }
 62             catch { }
 63 
 64             Url = "http://www.xicidaili.com/nn/";
 65             try
 66             {
 67                 string Area_Html = http.GetHtmlText(Url);
 68                 var documenthtml = new JumonyParser().Parse(Area_Html);
 69 
 70                 var lists = documenthtml.FindFirst("#ip_list").Find("tr").ToList();
 71 
 72                 bool first_ip = true;
 73                 foreach (var list in lists)
 74                 {
 75                     if(first_ip){
 76                         continue;
 77                     }
 78                     var IP_i = list.Find("td").ToList();
 79                     string IP = IP_i[1].ToString();
 80                     string Duankou = IP_i[2].ToString();
 81                     try
 82                     {
 83                         WebProxy proxyObject = new WebProxy(IP, int.Parse(Duankou));//str为IP地址 port为端口号 代理类
 84                         HttpWebRequest Req = (HttpWebRequest)WebRequest.Create("http://www.whatismyip.com.tw/"); // 61.183.192.5
 85                         Req.UserAgent = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; QQWubi 133; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; CIBA; InfoPath.2)";
 86                         Req.Proxy = proxyObject; //设置代理 
 87                         Req.Method = "GET";
 88                         HttpWebResponse Resp = (HttpWebResponse)Req.GetResponse();
 89                         string StringSub = "";
 90                         string OkStr = "";
 91                         Encoding code = Encoding.GetEncoding("utf-8");
 92                         using (StreamReader sr = new StreamReader(Resp.GetResponseStream(), code))
 93                         {
 94                             string str1 = sr.ReadToEnd();//获取得到的网址html返回数据,这里就可以使用某些解析html的dll直接使用了,比如htmlpaser 
 95                             if (str1.IndexOf(IP) > 0)
 96                             {
 97                                 return IP + ":" + Duankou;
 98                             }
 99                         }
100                     }
101                     catch { }
102                 }
103             }
104             catch { }
105 
106             
107             return "当前暂无可用";
108         }
109     }
110 }
代码

其实就是简单的获取一些网站(分享免费代理),经过自己的检测可用性,然后返回出带端口号的字符串

转载于:https://www.cnblogs.com/yishilin/p/7514241.html


http://www.niftyadmin.cn/n/800111.html

相关文章

jquery ajax npm,使用NPM安装的jQuery抛出$.ajax不是函数

我一直在研究在自动化测试项目中安装并需要jQuery的本地副本.我是jQuery的新手,到目前为止,我仍然坚持正确设置它. npm jquery page上没有可用的示例,我也检查了类似的问题here和here.我想使用jQuery的本地安装,以便其他签出我的项目的人可以npm install然后立即运行测试,即使他…

3、取得部门中(所有人的)平均的薪水等级【bjpowernode34道SQL题】

3、取得部门中&#xff08;所有人的&#xff09;平均的薪水等级一、题目二、思路2.1 先找出每个人的薪水等级2.2 基于以上的结果继续按照deptno分组&#xff0c;求grade的平均值。一、题目 取得部门中&#xff08;所有人的&#xff09;平均的薪水等级。 二、思路 平均的薪水…

java打印等腰三角形的两种方法!(根据行数,根据底边长度)

首先来看根据用户输入的底边的长度判断&#xff1a; 1 package cn.edu.nwpu.java;2 3 import java.util.Scanner;4 5 public class IsoscelesTriangle {6 7 public static void main(String[] args) {8 // 打印输出等腰三角形9 System.out.println("请…

机器学习实现计算不规则图形面积_五年级数学“图形求面积”10法,孩子考试不丢分...

更多资料请关注微信公众号&#xff1a;小学资源园地我们曾经学过的三角形、长方形、正方形、平行四边形、梯形、菱形、圆和扇形等图形&#xff0c;一般称为基本图形或规则图形.我们的面积及周长都有相应的公式直接计算.如下表&#xff1a;实际问题中&#xff0c;有些图形不是以…

4、不准用组函数(Max),取得最高薪水【bjpowernode34道SQL题】

4、不准用组函数&#xff08;Max&#xff09;&#xff0c;取得最高薪水一、题目二、思路2.1 第一种&#xff1a;sal降序&#xff0c;limit 12.2 第二种方案一、题目 不准用组函数&#xff08;Max&#xff09;&#xff0c;取得最高薪水&#xff1b; 二、思路 2.1 第一种&…

对变量及常量的总结:

按作用域分&#xff1a; 1.在类中声明的变量或常量叫属性&#xff0c;或者叫成员变量。 2.在方法中声明的变量叫局部变量&#xff0c;或者临时变量。 3.属性可以使用四种权限修饰符修饰&#xff0c;局部变量不可以。 4.属性可以使用static修饰&#xff0c;局部变量不可以。 5.属…

华为网吧服务器型号,网吧服务器推荐

网吧服务器推荐 内容精选换一换如果密码丢失、或创建时未设置密码&#xff0c;推荐您在控制台设置登录密码。只有运行中的云服务器云主机才允许用户登录。Windows操作系统用户名“Administrator”。首次登录云耀云服务器&#xff0c;请先通过“重置密码”功能设置登录密码。重置…

5、取得平均薪水最高的部门的部门编号【bjpowernode34道SQL题】

5、取得平均薪水最高的部门的部门编号一、题目二、思路2.1 降序取第一个一、题目 取得平均薪水最高的部门的部门编号 二、思路 2.1 降序取第一个 SELECTe.DEPTNO,AVG(e.SAL) avgsal FROMEMP e GROUP BY e.DEPTNO ORDER BY avgsal DESC LIMIT 0,1;