码迷,mamicode.com
首页 > Web开发 > 详细

WebMagic保存数据

时间:2020-03-25 01:53:02      阅读:119      评论:0      收藏:0      [点我收藏+]

标签:http   inter   png   interface   ima   bsp   部分   alt   通用   

使用和定制 Pipeline:

  在 WebMagic 中,Pileline 是抽取结束后,进行处理的部分,它主要用于抽取结果的保存,可以定制 Pipeline 可以实现一些通用的功能。
  定制Pipeline,需要实现Pipeline接口,Pipeline接口定义如下:

public interface Pipeline {
    // ResultItems 保存了抽取结果,它是一个 Map 结构,
    // 在 page.putField(key,value)中保存的数据,
    //可以通过 ResultItems.get(key)获取
    public void process(ResultItems resultItems, Task task);
}

  在 WebMagic 里,一个 Spider 可以有多个 Pipeline,使用 Spider.addPipeline() 即可增加一个 Pipeline。这些 Pipeline 都会得到处理,例如可以使用
    spider.addPipeline(new ConsolePipeline()).addPipeline(new FilePipeline())
    实现输出结果到控制台,并且保存到文件的目标。

  已有的 Pipeline:

    WebMagic 中就已经提供了控制台输出、保存到文件、保存为 JSON 格式的文件几种通用的 Pipeline。
    技术图片

   定制Pipeline 实现数据导入到数据库中:

@Component
public class SpringDataPipeline  implements Pipeline {
    @Autowired
    private JobInfoService jobInfoService;

    @Override
    public void process(ResultItems resultItems, Task task) {
        //获取封装好的招聘详情对象
        JobInfo jobInfo = resultItems.get("jobInfo");

        //判断数据是否不为空
        if (jobInfo != null) {
            //如果不为空把数据保存到数据库中
            this.jobInfoService.save(jobInfo);
        }
    }
}

 

WebMagic保存数据

标签:http   inter   png   interface   ima   bsp   部分   alt   通用   

原文地址:https://www.cnblogs.com/roadlandscape/p/12563253.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!