
java
自己做个每小时自动更新的代理服务器(proxy)列表
今天,偶尔看到有个国外网站每小时自动发布最新的代理服务器。
于是,就写了个程序,把它网站的代理服务器地址保存到本地
然后每小时执行一次。
程序是用java写的,
原理就是
抓取网页内容,然后分析其中的代码
保存在c:/proxy.htm文件中。
每小时运行该java程序,是
通过计划任务实现的
效果还不错。
如果能够从多个站点下载代理服务器,再加上能够验证代理服务器的有效性
就比较完美了。
如果自己有服务器的话,就也可以每小时发布最新的代理服务器了。
java程序源代码如下:
import
java.net.*;
import
java.io.*;
import
java.util.regex.*;
import
java.util.*;
public
class
javaproxy {
public
static
void
main(string[] args)
throws
exception {
system.out.println(
"
正在生成代理列表
.https://blog.csdn.net/Star_of_Java/article/r/n"
);
javaproxy ou =
new
javaproxy();
file f =
new
file(
"c://proxy.htm"
);
bufferedwriter bw =
new
bufferedwriter(
new
outputstreamwriter(
new
fileoutputstream(f))
);
string str = ou.getproxy1();
pattern p =
pattern.compile
(
"<li>"
);
string[] ss =
p.split
(str);
string strtmp =
""
;
string str1 =
""
;
if
(ss.length > 1) {
bw.write(
"<table width=/"90%/" border=/"0/" align=/"center/" bgcolor=/"#f9f9f9/"><tr><td>"
);
bw.write(
"<b>last modified:"
+
new
date().tolocalestring()
+
"</b>
<br> <br>"
);
for
(
int
i = 1; i < ss.length; i++) {
strtmp = ss[i].substring(10, 12);
// country
if
(strtmp.equals(
"cn"
))
strtmp =
"<font color=red>
<b>"
+
strtmp +
"
</b>
</font>"
;
str1 = removealltag(ss[i]);
bw.write(
""
+ i +
" "
+ strtmp +
" "
+ str1 +
"<br>"
);
}
bw.write(
"</td></tr></table>"
);
}
bw.close();
system.out.println(
"
完成
"
);
system.exit(0);
}
private
string getproxy1() {
int
i = 0;
try
{
url url =
new
url(
"http://www.cybersyndrome.net/pla.html"
);
bufferedreader br =
new
bufferedreader(
new
inputstreamreader(url
.openstream()));
string s =
""
;
stringbuffer =
new
stringbuffer(
""
);
while
((s = br.readline()) !=
null
) {
i++;
if
(i > 80 && i < 89) {
.append(s +
"/r/n"
);
}
}
br.close();
return
.tostring();
}
catch
(exception e) {
return
"error open url"
+ e.tostring();
}
}
public
static
string removealltag(string src) {
return
src.replaceall(
"<[^>]*>"
,
""
);
}
}