Python 爬虫框架 Items学习

本文介绍了Scrapy框架中的Items,用于结构化爬取的数据。Items类似字典,通过Field对象声明字段并设置元数据,提供了扩展和操作字段的灵活性。Item对象支持dict API,其fields属性包含所有声明的Field对象。
摘要由CSDN通过智能技术生成
Items

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

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

声明Item

Item使用简单的class定义语法以及 Field 对象来声明。例如:

import scrapy

class ExtractionItem(scrapy.Item):
	title = scrapy.Field()
	link = scrapy.Field()
	last_updated = scrapy.Field(serializer=str)
Item字段(Item Fields)

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

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

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

举个例子:

# file: items.py
import scrapy

class ExtractionItem(scrapy.Item):
	title = scrapy.Field(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值