WebMagic保存数据

Posted roadlandscape

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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。
    技术图片

   定制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保存数据的主要内容,如果未能解决你的问题,请参考以下文章

WebMagic 抓取图片并保存至本地

Java爬爬学习之WebMagic

用webmagic实现一个java爬虫小项目

大数据采集:爬虫框架之WebMagic的基本使用

签名图片一键批量生成 使用Java的Webmagic爬虫实现

webmagic爬取渲染网站