WebMagic保存数据

使用和定制 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。
    WebMagic保存数据

   定制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);
        }
    }
}

 

上一篇:6D姿态估计


下一篇:Java单元测试框架PowerMock技巧