在搜索引擎进行搜索,我们能够发现有很多免费的代理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... [阅读全文]
最新标签
推荐阅读
07
2020-01
http代理有哪几种代理模式?
互联网信息技术的发展,是当代的一大亮色。代理ip市场吸引了很多企业进驻,很多不同品牌的换ip软件如同雨后春笋一般出现在网络上面。
14
2020-02
代理ip在账号注册上的影响
关于代理ip,我们要明白ip代理在网络上的作用是非常显著的,但是对于普通用户而言,可能这个感受没有那么的强烈。下面,我们来看看http代理的使用。
06
2020-02
线上工作用代理ip来保护隐私
如果你经常要用到不同的ip来操作,如果通过手动来换ip,可能会觉得很麻烦,而且还会浪费时间等待。所以,越来越多人关注ip代理技术。
20
2020-02
ip修改器让换ip不再头痛
网络改ip,大家可以有几种方式来操作。手动的换ip,通过搜索可以看到有好多种比如重新启动路由器等等。自动的换ip,可以借助ip修改器的力量。
热门文章
公众号
关注公众号,免费领试用