资源简介
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个文件信息
相关资源
- Java连Oracle的JDBC的jar包适合11g、12c、
- Java实现远程桌面(参赛作品)
- Javaweb+mysql图书管理系统
- javaEE+jsp+MySql学生成绩管理系统(ecl
- 数据结构—Java语言描述朱战立版课件
- java调用ibmmq最全版本jar包,包含conn
- java博客WAR包
- 北大青鸟学士后java工程师第二单元项
- 提取关键词Java版
- Java编写的k-means文本聚类算法
- java web利用jQuery生成饼图,折线图,柱
- javaWEB酒店管理系统源代码完整版
- JavaWeb图书馆管理系统Jsp
- JSP在线排课系统的设计与实现
- mysql-connector-java5.1.30
- 基于JAVA_MyEclipse图书管理系统
- JavaEE学生管理系统
- 蚂蚁课堂Java工程师面试宝典
- Java编程思想练习答案官方pdf版
- JAVA编程思想练习答案完整版
- 网上购物系统 Java JSP sql带数据库
- 简单 图书馆管理系统 Java+Oracle
- SQL server数据库课程设计之基于Java图书
- Effective_Java_HGWKTBBUZLSF6HAVGBJTHJ4X4CDJD3D
- Java编写的SNMP 客户端程序,可以通过
- Jsp+Mysql+Jdbc+Servlet适合初学者的登陆查
- 基于Java和SQL的酒店管理系统
- Itext生成PDF所需要的最全Jar包
- 基于javaweb的火车票订购系统
- java教务管理系统
评论
共有 条评论