import java.io.*; import java.net.*; import java.util.*; import java.util.regex.*; public class AutoClick { public static int count = 0; public static List ipList = new ArrayList();
public static void main(String[] args) throws Exception { String defurl="http://www.baidu.com"; // 从以下网址获得代理服务器ip列表
URL url = new URL("http://www.cemsg.com/proxy/"); if (Math.random() > 0.5) { url = new URL("http://www.cemsg.com/proxy/2.htm"); } System.out.println("Use proxy list " + url); URLConnection conn = url.openConnection(); BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream())); String str = ""; StringBuffer sbuf = new StringBuffer(); while ((str = br.readLine()) != null) { sbuf.append(str); } str = sbuf.toString(); // 从HTML中筛出代理ip和port信息 Pattern p = Pattern.compile("\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}:\\d{2,4}"); Matcher m = p.matcher(str); while (m.find()) { ipList.add(str.substring(m.start(), m.end())); } // 开一个线程用随机的代理地址访问指定的url new Thread(new ClickThread(defurl)).start(); } } class ClickThread implements Runnable { public ClickThread(String urlAddr) { this.urlAddr = urlAddr; } String proxyIP; String proxyPort; String urlAddr; public void run() { while (true) { try { String[] ipInfos = AutoClick.ipList.get((int) (Math.random() * AutoClick.ipList.size())).toString().split(":"); System.setProperty("http.proxyHost", ipInfos[0]); System.setProperty("http.proxyPort", ipInfos[1]); URL url = new URL(urlAddr); URLConnection conn = url.openConnection(); BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream())); int rc = 0; while (br.readLine() != null) { rc++; } System.out.println("read " + rc); br.close(); AutoClick.count++; System.out.println(ipInfos[0] + ":" + ipInfos[1] + " click " + urlAddr + " " + AutoClick.count + " times"); } catch (Exception e) { } try { Thread.sleep(100); } catch (Exception e) { } } } }
↑返回目录
前一篇: Java程序性能测试
后一篇: 创建接受格式化文本的输入域