您的位置: 首页 > 新闻资讯 > 正文

免费IP如何抓取利用?

发布时间:2019-10-26 16:26:16 来源:

在搜索引擎进行搜索,我们能够发现有很多免费的代理IP可以提供给我们使用。那么,我们能够如何利用这些免费的IP呢?


免费IP如何抓取利用?


1、爬取代理IP


爬取步骤:


关于爬取代理IP,我们用国内某免费代理网站来作为爬取案例 。首先写个爬虫获取该网站内的Ip吧。


先对 国内Http代理 标签页面进行爬取,解析页面使用的Jsoup ,这里大概代码如下


private List<IPBean> crawl(String api, int index){


String html = HttpUtils.getResponseContent(api + index);


System.out.println(html);


Document document = Jsoup.parse(html);


Elements eles = document.selectFirst("table").select("tr");


for (int i = 0; i < eles.size(); i++){


if (i == 0) continue;


Element ele = eles.get(i);


String ip = ele.children().get(1).text();


int port = Integer.parseInt(ele.children().get(2).text().trim());


String typeStr = ele.children().get(5).text().trim();


int type;


if ("HTTP".equalsIgnoreCase(typeStr))


type = IPBean.TYPE_HTTP;


else


type = IPBean.TYPE_HTTPS;


IPBean ipBean = new IPBean(ip, port, type);


ipList.add(ipBean);


}


return ipList;


}


对某些不明白的变量,可以参考我Github


其中关键的就是css选择器语法,这里需要注意的是不要乱加空格,不然会导致找不到出现空指针。


css选择器语法具体参考这里 , 这里就不讲解了。


爬取的信息包括 ip地址、端口号、和代理类型(http或https), 这三个信息我放在IPBean这个类里面。


2、过滤


上面爬取完成后,还要进一步过滤,筛选掉不能使用的。


筛选大概原理就是先设置上代理,然后请求某个网页,若成功则代表此代理ip有效。


其中请求成功的标志我们可以直接获取请求的返回码,若为200即成功。


/**


* 检测代理ip是否有效


*


* @param ipBean


* @return


*/


public static boolean isValid(IPBean ipBean) {


Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(ipBean.getIp(), ipBean.getPort()));


try {


URLConnection httpCon = new URL("https://www.baidu.com/").openConnection(proxy);


httpCon.setConnectTimeout(5000);


httpCon.setReadTimeout(5000);


int code = ((HttpURLConnection) httpCon).getResponseCode();


System.out.println(code);


return code == 200;


} catch (IOException e) {


e.printStackTrace();


}


return false;


}


注意这里要设置两个超时,连接超时和读取超时。连接超时还好,它默认只是有点长;然而读取超时如果不设置,它好像就会一直阻塞着。


时间设置为5s就够了,毕竟如果ip有效的话,会很快就请求成功的。这样过滤后,就得到有效的代理ip了。


这样我们就搭建了自己的一个代理IP池了,是不是看起来也没那么复杂呢?


相关文章内容简介

1 免费IP如何抓取利用?

  在搜索引擎进行搜索,我们能够发现有很多免费的代理IP可以提供给我们使用。那么,我们能够如何利用这些免费的IP呢?  1、爬取代理IP  爬取步骤:  关于爬取代理IP,我们用国内某免费代理网站来作为爬取案例∵。首先写个爬虫获取该网站内的Ip吧。  先对∵国内Http代理∵标签页面进行爬取,解析页面使用的Jsoup∵,这里大概代码如下  priva... [阅读全文]

最新标签