package com.demo;
import com.jackson.common.control.ProxyController;
import com.jackson.db.po.Proxy;
import com.jackson.db.po.Url;
import com.jackson.db.service.ProxyService;
/**
* Created by Jackson on 2017/2/16.
*/
public class ProxyDemo {
public static void main(String[] args){
//创建代理对象,代理一般通过网站爬取
Proxy proxy = Proxy.newHttpProxy("192.168.1.1", 5060);
/**
* 创建proxyService的时候会根据表名创建一张proxy表,表在数据库里,不会因为停止程序数据消失,下次可以接着用。
* 刚创建的proxyService里是没有proxy数据的,需要自己去爬取网站获取。Demo里的例子就是爬去proxy数据的,可以直接
* 使用它。
*/
//TaskMethod最好用 MIN_TEST_TIME 因为新添加的proxy没有被测试过,没有速度可以过滤
ProxyService proxyService = new ProxyService("proxy_table_name", ProxyService.TakeMethod.MIN_TEST_TIME);
//添加代理到表里
proxyService.insert(proxy);
//创建代理管理器
ProxyController proxyController = ProxyController.newInstance(proxyService, Url.newHttpGetUrl("http://www.baidu.com"));
//设置线程数
proxyController.setThreadSize(10);
//开启验证代理可用性
proxyController.start();
while(true){
//验证可用的proxy通过这个方法获取
Proxy p = proxyController.getProxyPool().take();
}
}
public static ProxyController getProxyController(){
ProxyService proxyService = new ProxyService("proxy_table_name", ProxyService.TakeMethod.MIN_TEST_TIME);
ProxyController proxyController = ProxyController.newInstance(proxyService, Url.newHttpGetUrl("http://www.baidu.com"));
return proxyController;
}
}