资源简介
Java 实现免费代理IP的获取方式 并动态实时校验是否有效,java文件项目内含有Jsoup的Jar包(Jsoup是加工过的,含请求),有2个主入口程序:
其一:用于请求代理IP,并立即校验是否是一个有效的代理IP,如果有效,保存到相应的文件中。。。
其二:对已下载到本地的代理IP进行再筛选,对失效的代理IP进行处理,对任然有效的ip进行保存
结语:如果对你有帮助,请为我评论点赞

代码片段和文件信息
package com.htt.proxy.achieve;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.io.FileUtils;
import com.htt.proxy.util.HttpClientUtil;
/**
* @ClassName: GetWebValidateIpByProxy
* @Description: 验证已下载到本地的代理ip集合是否有效
* @author ex-hutao001
* @date 2017年9月30日 下午2:43:53
*/
public class GetWebValidateIpByProxy
{
static String resultfilePath = “D://data/paic/proxyip/ip_validate.txt“;
static File resultfile = new File(resultfilePath);
static List listResult = new ArrayList();
public static void getServices(String host Integer port)
{
try
{
HttpClient httpClient = HttpClientUtil.getHttpClient(host port);
GetMethod get = null;
get = new GetMethod(
“https://www.baidu.com/“); // 再次请求百度首页
long begeinTime = System.currentTimeMillis(); // 请求开始时间
int statuCode = httpClient.executeMethod(get);
long endTime = System.currentTimeMillis(); // 请求结束时间
long time = endTime - begeinTime; // 获得请求反应时间
String str = get.getResponseBodyAsString();
if (str != null && !str.equals(““))
{
if (str.contains(“www.baidu.com“)) // 如果含有baidu,证明获取成功,代理IP有效
{
listResult.add(host + “:“ + port);
FileUtils.writeStringToFile(resultfile host + “:“ + port + “\n“ true);
System.out.println(“请求返回code:“ + statuCode + “;请求返回结果:“ + str + “;反应时间为:[“ + time/1000 + “秒]“);
}
}
} catch (HttpException e)
{
System.out.println(“[“ + host + “:“ + port + “] 已失效“);
e.printStackTrace();
} catch (IOException e)
{
System.out.println(“文件有误,请修改文件路径“);
e.printStackTrace();
}
}
/**
* @title: getProxyIpToFile
* @Description: 把获取到的有效的代理IP地址重写写入另一个文件
* @param filepath void
* @author ex-hutao001
* @date 2017年9月30日
*/
public static void getProxyIpToFile(String filepath)
{
File file = new File(filepath);
try
{
List listIp = FileUtils.readLines(file);
for (String str_ip : listIp)
{
String[] sip = str_ip.split(“:“);
getServices(sip[0].toString() Integer.parseInt(sip[1]));
}
System.out.println(“参与验证的代理IP共:“ + listIp.size());
// FileUtils.writeLines(resultfile listResult);
System.out.println(“验证通过的IP有:“ + listResult.size());
} catch (IOException e)
{
e.printStackTrace();
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 881 2017-09-29 16:51 ProxyControl\.classpath
文件 388 2017-09-29 16:44 ProxyControl\.project
文件 598 2017-09-29 16:44 ProxyControl\.settings\org.eclipse.jdt.core.prefs
文件 4176 2017-09-30 14:54 ProxyControl\bin\com\htt\proxy\achieve\GetWebValidateIpByProxy.class
文件 3788 2017-09-30 14:36 ProxyControl\bin\com\htt\proxy\achieve\ProxyCralwerUnusedVPN.class
文件 2017 2017-09-30 14:07 ProxyControl\bin\com\htt\proxy\util\HttpClientUtil.class
文件 1469 2017-09-30 14:28 ProxyControl\bin\com\htt\proxy\util\ProxyUtil.class
文件 263965 2016-04-22 11:18 ProxyControl\lib\commons-codec-1.9.jar
文件 575389 2016-04-22 11:18 ProxyControl\lib\commons-collections-3.2.1.jar
文件 305001 2016-04-22 11:18 ProxyControl\lib\commons-httpclient-3.1.jar
文件 185140 2016-04-22 11:18 ProxyControl\lib\commons-io-2.4.jar
文件 207723 2016-04-22 11:18 ProxyControl\lib\commons-lang.jar
文件 385091 2016-04-22 11:18 ProxyControl\lib\commons-lang3-3.2.1.jar
文件 62050 2016-04-22 11:18 ProxyControl\lib\commons-logging-1.1.3.jar
文件 589512 2016-04-22 11:18 ProxyControl\lib\httpclient-4.3.3.jar
文件 327193 2017-09-29 16:50 ProxyControl\lib\jsoup-proxy.jar
文件 3450 2017-09-30 14:54 ProxyControl\src\com\htt\proxy\achieve\GetWebValidateIpByProxy.java
文件 3478 2017-09-30 14:36 ProxyControl\src\com\htt\proxy\achieve\ProxyCralwerUnusedVPN.java
文件 2015 2017-09-30 14:07 ProxyControl\src\com\htt\proxy\util\HttpClientUtil.java
文件 976 2017-09-30 14:28 ProxyControl\src\com\htt\proxy\util\ProxyUtil.java
目录 0 2017-09-30 14:58 ProxyControl\bin\com\htt\proxy\achieve
目录 0 2017-09-30 14:58 ProxyControl\bin\com\htt\proxy\util
目录 0 2017-09-30 14:58 ProxyControl\src\com\htt\proxy\achieve
目录 0 2017-09-30 14:58 ProxyControl\src\com\htt\proxy\util
目录 0 2017-09-30 14:58 ProxyControl\bin\com\htt\proxy
目录 0 2017-09-30 14:58 ProxyControl\src\com\htt\proxy
目录 0 2017-09-30 14:58 ProxyControl\bin\com\htt
目录 0 2017-09-30 14:58 ProxyControl\src\com\htt
目录 0 2017-09-30 14:58 ProxyControl\bin\com
目录 0 2017-09-30 14:58 ProxyControl\src\com
............此处省略8个文件信息
相关资源
- Windows bat 设置Java环境变量
- java 毕业设计 进销存管理系统 源码
- java图片浏览器跨平台运行程序与源码
- 基于java的在线考试系统-毕业设计
- 微博系统(Java源码,servlet+jsp),适
- java串口通信全套完整代码-导入eclip
- jsonarray所必需的6个jar包.rar
- 三角网构TIN生成算法,Java语言实现
- java代码编写将excel数据导入到mysql数据
- Java写的cmm词法分析器源代码及javacc学
- JAVA JSP公司财务管理系统 源代码 论文
- JSP+MYSQL旅行社管理信息系统
- 推荐算法的JAVA实现
- 基于Java的酒店管理系统源码(毕业设
- java-图片识别 图片比较
- android毕业设计
- java23种设计模式+23个实例demo
- java Socket发送/接受报文
- JAVA828436
- java界面美化 提供多套皮肤直接使用
- 在线聊天系统(java代码)
- 基于Java的图书管理系统807185
- java中实现将页面数据导入Excel中
- java 企业销售管理系统
- java做的聊天系统(包括正规课程设计
- Java编写的qq聊天室
- 商店商品管理系统 JAVA写的 有界面
- JAVA开发聊天室程序
- 在linux系统下用java执行系统命令实例
- java期末考试试题两套(答案) 选择(
评论
共有 条评论