其他分享
首页 > 其他分享> > 一波爬虫,直接把年终奖干没了

一波爬虫,直接把年终奖干没了

作者:互联网

引言

方案2:

解决问题

布隆过滤器介绍完了,我们再回到上述的问题,我们把上述问题通过伪代码来实现下;

   /**
     * 初始化
     */
    @PostConstruct
    public void init() {
        // 这个可以通过配置中心来读取
        double fpp = 0.001;
        // 调用反爬系统接口 拉取批量黑名单
        List<String> blackIpList = getBlackIpList();
        // 初始化 不隆过滤器
        blackIpBloomFilter = BloomFilter.create(Funnels.stringFunnel(Charset.forName("utf-8")), blackIpList.size(), fpp);
        for (String ip: blackIpList) {
            blackIpBloomFilter.put(ip);
        }
    }
    /**
     * 判断是否是爬虫
     */
    public boolean checkIpIsBlack(String ip) {
        boolean contain = blackIpBloomFilter.mightContain(ip);
        if (!contain) {
            return false;
        }
         // 不在redis白名单里面
       if (!RedisUtils.exist(String.format("whiteIp_%", ip)){
            return false;
        } 
        // 调用反爬系统接口 判断IP是否在黑名单里面
    }

总结

上述只是列举了通过IP来反爬虫,这种反爬的话只能应对比较低级的爬虫,如果稍微高级一点的爬虫也可以通过代理IP来继续爬你的网站,这样的话成本可能就会加大了一点。爬虫虽然好,但是还是不要乱爬,“爬虫爬的好,牢饭吃到饱

结束

标签:一波,年终奖,黑名单,爬虫,接口,布隆,IP,过滤器
来源: https://blog.51cto.com/14987832/2598218