[关闭]
@songying 2018-07-18T11:39:42.000000Z 字数 930 阅读 1177

Scrapy 之 Item

Scrapy


声明 item

在item.py文件中设置你要爬取的item

  1. class Product(scrapy.Item):
  2. name = scrapy.Field()

working with items

1 .创建item

  1. product = Product(name='Desktop PC', price=1000)

2. 获取item

  1. product['name']
  2. product.get('name')
  3. 'name' in project

3. 设置item的值

  1. product['name'] = 'song'

4. 获取所有item

  1. product.keys() # 获取所有的item(不包含值)
  2. product.items() # 获取所有的item(包含item对应的值)

5. 复制items

  1. product2 = Product(product)
  2. roduct2 = Product.copy()

6. 根据item创建dict

  1. dict(product)

7. 根据dict创建item

  1. Product(dict_name)

扩展Item

您可以通过继承原始的Item来扩展item(添加更多的字段或者修改某些字段的元数据)。

  1. class DiscountedProduct(Product):

您也可以通过使用原字段的元数据,添加新的值或修改原来的值来扩展字段的元数据:

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

Item对象?

  1. class scrapy.item.Item([arg])
  2. # 返回一个根据给定的参数可选初始化的item

注意: Item复制了标准的dict API

Field对象

  1. class scrapy.item.Field([arg])

Field 仅仅是内置的 dict 类的一个别名,并没有提供额外的方法或者属性。换句话说, Field对象完完全全就是Python字典(dict)

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注