Javaネットワーク爬虫類(十一)--redisデータベースを使用して爬虫類キューを構築


コード思想は主に広さが優先的に検索され、知らない学生がアルゴリズム思想を理解することができ、私たちは直接コードを見てみましょう.
redisデータベース爬虫キューコード:
package redisqueue;

import redis.clients.jedis.Jedis;

/** * Created by hg_yi on 17-6-12. */
public class RedisQueue {
    private Jedis jedis = null;

    //  redis       
    public RedisQueue() {
        //      Redis   
        jedis = new Jedis("127.0.0.1", 6379);
        //    
        jedis.auth("******");
    }

    //     url   toVisit  (       )
    public void addToVisit(String url) {
        jedis.rpush("toVisit", url);
    }

    //     url      
    public String getToVisit() {
        return jedis.lpop("toVisit");
    }

    //       url         
    public void addVisited(String url) {
        jedis.rpush("visited", url);
    }

    //     url      
    public boolean toVisitIsEmpty() {
        Long length = jedis.llen("toVisit");

        if (length == 0) {
            return true;
        } else {
            return false;
        }
    }
}

主な方法:
package redisqueue;

import mainclassify.MainClassifyUrl;

import java.util.Set;

/** * Created by hg_yi on 17-6-12. * *   Jedis  Redis       */

public class MainMethod {
    public static void main(String[] args) {
        RedisQueue redisQueue = new RedisQueue();

        //      (           ,       url)
        Set<String> strings = MainClassifyUrl.getMainClassifyUrl();

        //       redis         
        for (String url : strings) {
            redisQueue.addToVisit(url);
        }

        //                 url   
        while (!redisQueue.toVisitIsEmpty()) {
            //    url         url
            String url = redisQueue.getToVisit();

            /** *    url         url  ,            , *           ,             。 * *                        url   。 * *        url          。 */

            //  jsoup    url  ,     redis       url  

            //       url     url   
            redisQueue.addVisited(url);
        }
    }
}