IpPipeline.java 1.4 KB
package com.canrd.webmagic.processor.pipeline;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.canrd.webmagic.domain.dto.ArticleDO;
import com.canrd.webmagic.domain.dto.IpDO;
import com.canrd.webmagic.service.IpService;
import us.codecraft.webmagic.ResultItems;
import us.codecraft.webmagic.Task;
import us.codecraft.webmagic.pipeline.Pipeline;

import javax.annotation.Resource;
import java.util.List;
import java.util.Objects;

public class IpPipeline implements Pipeline {
    @Resource
    private IpService ipService;

    @Override
    public void process(ResultItems resultItems, Task task) {
        List<IpDO> ips= resultItems.get("ips");
        if (CollectionUtils.isNotEmpty(ips)) {
            for (IpDO ipDO : ips) {
                QueryWrapper<IpDO> ipDOQueryWrapper = new QueryWrapper<IpDO>()
                        .eq("ip",ipDO.getIp())
                        .eq("port",ipDO.getPort())
                        .eq("anonymity",ipDO.getAnonymity())
                        .eq("region",ipDO.getRegion());
                List<IpDO> ipList = ipService.list(ipDOQueryWrapper);
                if (CollectionUtils.isNotEmpty(ipList)) {
                    return;
                }
                ipService.save(ipDO);
            }
        }
    }
}