跟我学系列,走进Scrapy爬虫(五)聊一聊Items

本章工作任务

任务1:为什么要使用Item?

任务2:如何使用Item?

任务3:Item的扩展

本章技能目标及重难点

编号 技能点描述 级别

1 为什么要使用Item? ★

2 如何使用Item? ★★★

3 Item的扩展 ★★

注: "★"理解级别 "★★"掌握级别 "★★★"应用级别

本章学习目标

本章开始学习Scrapy的Items,需要同学们学会创建Item及相关扩展的Item应用。

本章学习建议

本章适合有Python爬虫基础的学员学习。

本章内容(学习活动)

5.1为什么要使用Item?

爬取的主要目标就是从非结构性的数据源提取结构性数据,例如网页。Scrapy 提供 Item 类来满足这样的需求。

Item 对象是种简单的容器,保存了爬取到得数据。其提供了类似于词典(dictionary-like)的API以及用于声明可用字段的简单语法。

5.1.1声明 Item

Item 使用简单的 class 定义语法以及 Field 对象来声明,如图5-1所示。

5-1 声明Item

熟悉 Django 的朋友一定会注意到 Scrapy Item 定义方式与 Django Models 很类似, 不过没有那么多不同的字段类型(Field type),更为简单。

5.1.2 Item字段(Item Fields)

Field 对象指明了每个字段的元数据(metadata)。例如下面例子中 last_updated 中指明了该字段的序列化函数。

您可以为每个字段指明任何类型的元数据。Field 对象对接受的值没有任何限制。也正是因为这个原因,文档也无法提供所有可用的元数据的键(key)参考列表。Field 对象中保存的每个键可以由多个组件使用,并且只有这些组件知道这个键的存在。您可以根据自己的需求,定义使用其他的 Field 键。 设置 Field 对象的主要目的就是在一个地方定义好所有的元数据。一般来说,那些依赖某个字段的组件肯定使用了特定的键(key)。您必须查看组件相关的文档,查看其用了哪些元数据键(metadata key)。

需要注意的是,用来声明 item 的 Field 对象并没有被赋值为 class 的属性。不过您可以通过 Item.fields 属性进行访问。

以上就是所有

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

子沐老司

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值