java自己做个每小时自动更新的代理服务器(proxy)列表 
 今天,偶尔看到有个国外网站每小时自动发布最新的代理服务器。 
于是,就写了个程序,把它网站的代理服务器地址保存到本地 
然后每小时执行一次。 
  
程序是用java写的,原理就是抓取网页内容,然后分析其中的代码 
保存在c:\proxy.htm文件中。 
每小时运行该java程序,是通过计划任务实现的 
效果还不错。 
 如果能够从多个站点下载代理服务器,再加上能够验证代理服务器的有效性 
就比较完美了。 
 如果自己有服务器的话,就也可以每小时发布最新的代理服务器了。  
java程序源代码如下: 
  
 /**  * 保存代理服务器地址到 c:\proxy.htm 文件  * @web http://blog.csdn.net/cqq  * @author 慈勤强  * @version 1.00 05/02/01  */ 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("<[^>]*>", "");    } }  
 
  |