java
自己做個每小時自動更新的Proxy 伺服器(proxy)列表 今天,偶爾看到有個國外網站每小時自動發布最新的Proxy 伺服器。 於是,就寫了個程式,把它網站的Proxy 伺服器地址儲存到本地 然後每小時執行一次。 程式是用java寫的,
原理就是
抓取網頁內容,然後分析其中的代碼
儲存在c:/proxy.htm檔案中。
每小時運行該java程式,是
通過計劃任務實現的 效果還不錯。 如果能夠從多個網站下載Proxy 伺服器,再加上能夠驗證Proxy 伺服器的有效性 就比較完美了。 如果自己有伺服器的話,就也可以每小時發布最新的Proxy 伺服器了。 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("正在組建代理程式列表.../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 sb =
new stringbuffer("");
while ((s = br.readline()) !=
null) { i++;
if (i > 80 && i < 89) { sb.append(s + "/r/n"); } } br.close();
return sb.tostring(); }
catch (exception e) {
return"error open url" + e.tostring(); } }
public
static string removealltag(string src) {
return src.replaceall("<[^>]*>", ""); }}