Items
就相当于mvc中的model
声名item
import scrapy
class Product(scrapy.Item):
name = scrapy.Field()
price = scrapy.Field()
stock = scrapy.Field()
last_updated = scrapy.Field(serializer=str)
创建item
product = Product(name='Desktop PC', price=1000)
获得item的field
product['name']
product.get('name')
product['last_updated']
product.get('last_updated', 'not set')
设置item的field的值
product['last_updated'] = 'today'
product['lala'] = 'test' # setting unknown field
Traceback (most recent call last):
...
KeyError: 'Product does not support field: lala'
获得所有的值
>>> product.keys()
['price', 'name']
>>> product.items()
[('price', 1000), ('name', 'Desktop PC')]
扩展
直接集成别的item就好了
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)
其他操作
复制items
product2 = Product(product)
product3 = product2.copy()
items转item
dict(product)
从dict创建item
Product({'name': 'Laptop PC', 'price': 1500})
Last updated