IpPipeline.java
1.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
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);
}
}
}
}