文章目录

  • 1. 前言
  • 2. 序列化格式
    • 2.1 JSON
    • 2.2 JSON lines
    • 2.3 CSV
    • 2.4 XML
    • 2.5 Pickle
    • 2.6 Marshal
  • 3. 存储
    • 3.1 存储的URI参数
    • 3.2 本地文件系统
    • 3.3 FTP
    • 3.4 S3
    • 3.5 标准输出
  • 4. 设置
  • 5. 参考文献

1. 前言

在实现scraper时,常需要的功能之一是能够正确地存储被抓取的数据,这意味着用被抓取的数据(通常称为“导出提要”)生成一个“导出文件”,供其他系统使用。

Scrapy通过Feed导出提供了这样一个开箱即用的功能。允许你根据抓取的items使用多种序列化格式和存储后端生成feeds。

2. 序列化格式

为了序列化抓取到的数据,feed导出需要使用Item exporters。开箱即用地支持如下几种格式:

  • JSON。
  • JSON lines。
  • CSV。
  • XML。

当然,也可以通过FEED_EXPORTERS设置自己想要的格式。

2.1 JSON

  • FEEDs设置中的format键的值为:json
  • 使用的Exporter:JsonItemExporter
  • feed较大时使用JSON lines更好。

2.2 JSON lines

  • FEEDs设置中的format键的值为:jsonlines
  • 使用的Exporter:JsonLinesItemExporter

2.3 CSV

  • FEEDs设置中的format键的值为:csv
  • 使用的Exporter:CsvItemExporter
  • 使用FEED_EXPORT_FIELDS指明要导出的列和列的顺序。CSV必设此项,因为它根其它格式不太一样,它的列头是固定的。

2.4 XML

  • FEEDs设置中的format键的值为:xml
  • 使用的Exporter:XmlItemExporter

2.5 Pickle

  • FEEDs设置中的format键的值为:pickle
  • 使用的Exporter:PickleItemExporter

2.6 Marshal

  • FEEDs设置中的format键的值为:marshal
  • 使用的Exporter:MarshalItemExporter

3. 存储

当你要使用feed导出时,你可以在FEEDS设置中定义一个或多个URI。feed导出支持多种存储后端类型,都通过URI来定义。

开箱即用地支持如下几种:

  • 本地文件系统(Local filesystem)
  • FTP
  • S3(需要 botocore)
  • 标准输出(Standard output)

如果所需的外部库不可用,则某些存储后端可能不可用。例如,只有在 botocore 库已安装情况下,S3后端才可用。

3.1 存储的URI参数

在URI中可以有很多参数。

  • %(time)%。创建feed的时间戳。
  • %(name)%。spider的name。
    也可将sider的其他属性作为URI的参数。当feed创建时,URI中的参数会被实际的值替换。

例子,

  • 存储在FTP中( 每一个spider一个目录)。ftp://user:password@ftp.example.com/scraping/feeds/%(name)s/%(time)s.json
  • 存储在S3中( 每一个spider一个目录)。s3://mybucket/scraping/feeds/%(name)s/%(time)s.json

3.2 本地文件系统

feed存储在本地文件系统。

  • URI语法:file
  • URI示例:file:///tmp/export.csv
  • 是否需要额外的库:否

请注意,对于本地文件系统存储,如果指定了/tmp/export.csv之类的绝对路径,则可以省略该方案。 不过,这仅适用于Unix系统。

3.3 FTP

feed存储在FTP服务器。

  • URI语法:ftp
  • URI示例:ftp://user:pass#ftp.example.com/path/to/export.csv
  • 是否需要额外的库:否
    FTP支持两种连接模式:主动和被动。Scrapy默认使用被动连接模式。将FEED+STORAGE_FTP_ACTIVE设为True,则使用主动连接模式。

3.4 S3

feed存储在Amazon S3。

  • URI语法:s3
  • URI示例:
    • s3://mybucket/path/to/export.csv
    • s3://aws_key:aws_secret@mybucket/path/to/export.csv。需要设置AWS证书。
  • 是否需要额外的库:botocore。

3.5 标准输出

feed被写入Scrapy进程的标准输出。

4. 设置

详情见 Scrapy官方文档 - Feed exports

5. 参考文献

[1] Scrapy官方文档 - Feed exports

初识 Scrapy - Feed导出相关推荐

  1. Scrapy: Feed exports

    Feed exports New in version 0.10. 当执行抓取的时候,一个最经常需要的特性就是正确并经常的保存榨取的数据,也就是说生成有抓取来的数据的导出文件(通常叫做export f ...

  2. 初识Scrapy,在充满爬虫的世界里做一个好公民

    欢迎来到你的Scrapy之旅.通过本文,我们旨在将你从一个只有很少经验甚至没有经验的Scrapy初学者,打造成拥有信心使用这个强大的框架从网络或者其他源爬取大数据集的Scrapy专家.本文将介绍Scr ...

  3. python自动化开发-[第二十四天]-高性能相关与初识scrapy

    今日内容概要 1.高性能相关 2.scrapy初识 上节回顾: 1. Http协议Http协议:GET / http1.1/r/n...../r/r/r/na=1TCP协议:sendall(" ...

  4. Python3网络爬虫1:初识Scrapy

    转载出处:https://blog.csdn.net/c406495762/article/details/72858983 官方:https://scrapy-chs.readthedocs.io/ ...

  5. 初识 scrapy 框架 - 安装

    前面豆子学习了基本的urllib的模块,通过这个模块可以写一些简单的爬虫文件.如果要处理大中型的爬虫项目,urllib就显得比较low了,这个时候可以使用scrapy框架来实现,很多基本的处理在scr ...

  6. python应用:爬虫框架Scrapy系统学习第三篇——初识scrapy

    scrapy的最通用的爬虫流程:UR2IM U:URL R2:Request 以及 Response I:Item M:More URL 在scrapy shell中打开服务器一个网页 cmd中执行: ...

  7. Python3网络爬虫(十二):初识Scrapy之再续火影情缘

    转载请注明作者和出处: http://blog.csdn.net/c406495762 运行平台: Windows Python版本: Python3.x IDE: Sublime text3 前言 ...

  8. 初识Scrapy之再续火影情缘

    前言 Scrapy框架之初窥门径 1 Scrapy简介 2 Scrapy安装 3 Scrapy基础 31 创建项目 32 Shell分析 4 Scrapy程序编写 41 Spiders程序测试 42 ...

  9. Python爬虫之Scrapy框架系列(1)——初识Scrapy框架【安装+简介+运行流程+组件介绍】

    目录: 1.Scrapy模块安装 2.Scrapy框架简介 2.1 Scrapy是个啥? 2.2 我们为啥要用这玩意呢? 3.运行流程 3.1 引入: 3.2 进入正题: 3.3 数据流: 3.4 中 ...

最新文章

  1. 半可信混合技术:BCH混币工具CashShuffle引入STAT
  2. windows下QtSDK/QTCreator安装
  3. Linux下arp用法
  4. java 任意数平均值_【编程题】通过键盘输入三个任意的数字,计算三个值的平均值,并输出结果。...
  5. linux查看镜像的详细信息,docker inspect命令查看镜像详细信息
  6. Could not find result map
  7. rto初始化和计算_TCP系列13—重传—3、协议中RTO计算和RTO定时器维护
  8. matlab控制realsense,RealSense开发学习--1.初识RealSense
  9. 【英语学习】【Level 07】U04 Rest and Relaxation L5 An inn by the lake
  10. Android 关于在Activity中监听ListView
  11. python_day33- udp 多道技术
  12. 并行算法:如何利用并行处理提高算法的执行效率?
  13. 在苹果mac中使用excel时,如何快速求和多行数值?
  14. Mac安装Mysql,并启动
  15. 【2022跨年】最浪漫的表白烟花,送给新的一年的自己(源码)
  16. 私有服务器虚拟化软件市场排名,操作系统、数据库和虚拟化软件2017年市场格局分析...
  17. 大脚插件服务器金币显示,关于魔兽世界的大脚插件无法显示金钱的问题
  18. Unity3d 5 官方教程:UI
  19. krait和kryo_高通kryo架构还是arm吗
  20. FSD062服务器电源维修,电磁炉开关电源FSD200维修经验

热门文章

  1. 批量将四通道PNG图像转为三通道图像
  2. hdu 1067 Gap
  3. Firepower Management Center (思科 Firepower 管理中心) 7.0.0
  4. 设置response相应头用于浏览器下载文件
  5. 淘宝高价卖假鞋的黑店名录(商城篇*未处理篇)
  6. 魅族18s有没有广告
  7. 雕刻机曲线算法C语言,雕刻机c程序
  8. 关于其他视频文件向.flv文件转换的问题
  9. 古堡探险_判断5个数都不同的简单方式及暴力破解的简单方式
  10. 四级高频词汇---词根串讲---day1