NatureJob.java 1.47 KB
package com.canrd.webmagic.job;

import com.canrd.webmagic.common.utils.KeywordUtil;
import com.canrd.webmagic.processor.NatureSearchPageProcessor;
import com.canrd.webmagic.processor.pipeline.ArticlePipeline;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import us.codecraft.webmagic.Spider;

import javax.annotation.Resource;

/**
 * @author: xms
 * @description: TODO
 * @date: 2024/4/26 10:06
 * @version: 1.0
 */
@Component
public class NatureJob {

    @Resource
    private NatureSearchPageProcessor natureSearchPageProcessor;

    @Resource
    private ArticlePipeline articlePipeline;

    /**
     * 每天凌晨执行一次
     */
//    @Scheduled(cron = "*/20 * * * * ?")
    @Scheduled(cron = "0 0 0 * * ?")
    public void executeByDay() {
        for (String keyword : KeywordUtil.getKeyWordList()) {
            Spider.create(natureSearchPageProcessor)
                    // 添加这个Spider要爬取的网页地址
                    .addUrl("https://www.nature.com/search?q=" + keyword + "&page=" + 1)
                    .addUrl("https://www.nature.com/search?q=" + keyword + "&page=" + 2)
                    .addUrl("https://www.nature.com/search?q=" + keyword + "&page=" + 3)
                    .addPipeline(articlePipeline)
//                    .setDownloader(downloader.newIpDownloader())
                    // 开启5个线程执行,并开始爬取
                    .thread(5).run();
        }
    }
}