找回密码
 立即注册

项目

2022-2-21 06:05| 发布者: 笨鸟自学网| 查看: 4848| 评论: 0

摘要: 剪贴的主要目标是从非结构化源(通常是网页)中提取结构化数据。Spiders将提取的数据返回为items,定义键-值对的Python对象。支点multiple types of items. 创建项目时,可以使用所需的任何类型的项目。当您编写接收 ...


其他常见任务

从项目创建dict:

>>> dict(product) # create a dict from all populated values
{'price': 1000, 'name': 'Desktop PC'}

从dicts创建项目:

>>> Product({'name': 'Laptop PC', 'price': 1500})
Product(price=1500, name='Laptop PC')
>>> Product({'name': 'Laptop PC', 'lala': 1500}) # warning: unknown field in dict
Traceback (most recent call last):
    ...
KeyError: 'Product does not support field: lala'

扩展项子类

您可以通过声明原始项的子类来扩展项(添加更多字段或更改某些字段的元数据)。

例如::

class DiscountedProduct(Product):
    discount_percent = scrapy.Field(serializer=str)
    discount_expiration_date = scrapy.Field()

您还可以通过使用前面的字段元数据并附加更多值或更改现有值来扩展字段元数据,如:

class SpecificProduct(Product):
    name = scrapy.Field(Product.fields['name'], serializer=my_serializer)

添加(或替换)了 serializer 的元数据键 name 字段,保留所有以前存在的元数据值。

支持所有项目类型

在接收项的代码中,例如 item pipelines 或 spider middlewares ,使用 ItemAdapter 类与 is_item() 函数来编写适用于任何 supported item type 

12345
上一篇:选择器下一篇:项目加载器

Archiver|手机版|笨鸟自学网 ( 粤ICP备20019910号 )

GMT+8, 2025-8-31 10:00 , Processed in 0.044871 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2017 Discuz Team. Template By 【未来科技】【 www.wekei.cn 】

返回顶部