@songying
2018-07-18T11:39:42.000000Z
字数 930
阅读 1177
Scrapy
在item.py文件中设置你要爬取的item
class Product(scrapy.Item):
name = scrapy.Field()
product = Product(name='Desktop PC', price=1000)
product['name']
product.get('name')
'name' in project
product['name'] = 'song'
product.keys() # 获取所有的item(不包含值)
product.items() # 获取所有的item(包含item对应的值)
product2 = Product(product)
roduct2 = Product.copy()
dict(product)
Product(dict_name)
您可以通过继承原始的Item来扩展item(添加更多的字段或者修改某些字段的元数据)。
class DiscountedProduct(Product):
您也可以通过使用原字段的元数据,添加新的值或修改原来的值来扩展字段的元数据:
class SpecificProduct(Product):
name = scrapy.Field(Product.fields['name'], serializer=my_serializer)
class scrapy.item.Item([arg])
# 返回一个根据给定的参数可选初始化的item
注意: Item复制了标准的dict API
fields: Item对象唯一额外的属性
一个包含了item所有声明的字段的字典,而不仅仅是获取到的字段。该字典的key是字段(field)的名字,值是 Item声明 中使用到的
Field
对象。
class scrapy.item.Field([arg])
Field
仅仅是内置的 dict 类的一个别名,并没有提供额外的方法或者属性。换句话说, Field
对象完完全全就是Python字典(dict)