Item :
位置:scrapy根目录下的item.py中的Item类
item.py:
Field类:一个dict的别称,特性与dict完全相同。
自定义一个字段,如:
name=scrapy.Field()#与name=dict()一样
DictItem类:Item的父类,Item类没有任何实现,DictItem继承了Collection类的特性。
其中有一个field={ }的字典属性,用于存放Field类创建的字典。
Item Loader :
位置:from scrapy.contrib.loader import ItemLoader
ItemLoader主要用途就是扩展装载数据的方式。
主要方法:
def init(self, item=None, selector=None, response=None, parent=None, **context):
当selector没有指定时,有一全局属性default_selector_class = Selector
同理item为空时:item = self.default_item_class()
def add_xpath(self, field_name, xpath, *processors, **kw):#以某种形式取出数据
def load_item(self):#该方法将数据存入item中
使用:
l=ItemLoader(item=TextScrapyItem,response=response)
l.add_xpath('name','xpath表达式')
l.load_item( )#将数据从Item loder中存到Item中
其中:
self._local_values = defaultdict(list)#用来在Item Loader中存数据
其中还有很多细节,目前没有太过仔细看,学习了一下基础。