use of com.virjar.vscrawler.core.net.user.User in project vscrawler by virjar.
the class EveryUserPlanner method determineProxy.
@Override
public Proxy determineProxy(HttpHost host, HttpRequest request, HttpContext context, IPPool ipPool, CrawlerSession crawlerSession) {
HttpClientContext httpClientContext = HttpClientContext.adapt(context);
User user = UserUtil.getUser(crawlerSession);
if (user == null) {
log.warn("you config proxy strategy by user,but this session has not login with a user,proxy bind will be ignore");
return null;
}
Proxy proxy = (Proxy) user.getExtInfo().get(VSCrawlerConstant.VSCRAWLER_AVPROXY_KEY);
if (proxy == null) {
String accessUrl = null;
if (request instanceof HttpRequestWrapper || request instanceof HttpGet) {
accessUrl = HttpUriRequest.class.cast(request).getURI().toString();
}
if (!PoolUtil.isDungProxyEnabled(httpClientContext)) {
log.info("{}不会被代理", accessUrl);
return null;
}
proxy = ipPool.getIP(host.getHostName(), accessUrl);
if (proxy == null) {
return null;
}
user.getExtInfo().put(VSCrawlerConstant.VSCRAWLER_AVPROXY_KEY, proxy);
}
return proxy;
}
use of com.virjar.vscrawler.core.net.user.User in project vscrawler by virjar.
the class EventTest method main.
public static void main(String[] args) {
VSCrawlerContext vsCrawlerContext = VSCrawlerContext.create("testCrawler");
vsCrawlerContext.getEventLoop().loop();
AutoEventRegistry eventRegister = vsCrawlerContext.getAutoEventRegistry();
eventRegister.registerObserver(new UserLoginEvent() {
@Override
public void afterUserLogin(VSCrawlerContext vsCrawlerContext1, User user, boolean loginSucces) {
System.out.println(Thread.currentThread() + "用户登录:" + (loginSucces ? "成功" : "失败"));
}
});
UserLoginEvent userLoginEvent = eventRegister.findEventDeclaring(UserLoginEvent.class);
for (int i = 0; i < 10; i++) {
userLoginEvent.afterUserLogin(vsCrawlerContext, null, false);
}
CommonUtil.sleep(20000);
}
Aggregations