scrapy持久化存储

Posted nanjo4373977

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了scrapy持久化存储相关的知识,希望对你有一定的参考价值。

基于终端指令:

要求:只可以将parse方法的返回值存储到本地的文本文件中

注意:持久批存储对应的文本文件类型只可以为:(‘csv‘, ‘pickle‘, ‘json‘, ‘xml‘, ‘jl‘, ‘jsonlines‘, ‘marshal‘)

指令:scrapy crawl xxx -o filePath

好处:简洁高效便捷

缺点:局限性比较强(数据只可以存储到指定后缀的文本文件中)


 

基于管道:

编码流程:

  • 数据解析
  • 在item类中定义相关的属性
  • 将解析的数据封装存储到item类型的对象
  • 将item类型的对象提交给管道进行持久化存储的操作
  • 在管道类的process_item中要将其接收到的item对象中存储的数据进行持久化存储操作
  • 在配置文件中开启管道

好处:

  • 通用性强

 

面试题:将爬取到的数据一份存储到本地一份存储到数据库,如何实现

  • 管道文件中一个管道类对应的是将数据存储到一种平台,所以需要在pipelines.py文件中定义新的管道类
  • 爬虫文件提交的item只会给管理文件中第一个被执行的管道类接收
  • process_item中return item表示将item传递给下一个即将被执行的管道类

 

 

以上是关于scrapy持久化存储的主要内容,如果未能解决你的问题,请参考以下文章

Scrapy持久化存储

论Scrapy中的数据持久化

Scrapy框架持久化存储 򏪕

scrapy 框架持久化存储

Scrapy框架基础应用和持久化存储

scrapy持久化存储