文章 > 其他 > 如何搭建java代理池爬虫?

如何搭建java代理池爬虫?

爬虫

头像

十一

2021-04-01 17:20:11474浏览 · 0收藏 · 0评论

一般做网络爬虫代理的IP需求比较大。由于在爬取网站信息的过程中,许多网站都做了反爬虫策略,可能每一个IP都做了频率控制。所以我们需要大量的代理IP来爬取网站。下面给大家介绍常见的获取ip方式以及想要搭建Java代理池爬虫的方法。

通过以下途径可以获得代理IP:

1、来自免费网站,质量很差,可以使用的IP很少。

2、付费买代理服务,品质极高。

3、自建代理服务器,稳定,但是需要服务器的大量资源。

Java自建代理池:

1、建立ParallelFlowable,并对提供免费代理IP的每个页面进行并行抓取。

 2、抓取每个页面,返回List。

 3、通过检查每个页面所获得的代理IP列表,判断是否可用。

flatMap(new Function<List<Proxy>, Publisher<Proxy>>() {
                    @Override                    public Publisher<Proxy> apply(List<Proxy> proxies) throws Exception {
 
                        if (proxies == null) return null;
 
                        List<Proxy> result = proxies                                .stream()
                                .parallel()
                                .filter(new Predicate<Proxy>() {
                            @Override                            public boolean test(Proxy proxy) {
 
                                HttpHost httpHost = new HttpHost(proxy.getIp(), proxy.getPort(), proxy.getType());
                                return HttpManager.get().checkProxy(httpHost);
                            }
                        }).collect(Collectors.toList());
 
                        return Flowable.fromIterable(result);
                    }
                })

4、依次保存到proxyList。

subscribe(new Consumer<Proxy>() {
                    @Override                    public void accept(Proxy proxy) throws Exception {
                        log.debug("Result Proxy = "+proxy.getType()+"://"+proxy.getIp()+":"+proxy.getPort());
                        proxy.setLastSuccessfulTime(new Date().getTime());
                        ProxyPool.proxyList.add(proxy);
                    }
                });

完整的流程图:

 以上就是构建Java爬虫代理池的相关办法了,感兴趣的小伙伴不妨跟着小编学习搭建起来哦~如果想获取ip代理资源,可以到品易云中测试使用哦~

推荐操作环境:windows7系统、java10版,DELL G3电脑。

关注公众号

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

底部广告图 底部广告图按钮