Item :
位置:scrapy根目錄下的item.py中的Item類(lèi)
item.py:
Field類(lèi):一個(gè)dict的別稱(chēng),特性與dict完全相同。
自定義一個(gè)字段,如:
name=scrapy.Field()#與name=dict()一樣
DictItem類(lèi):Item的父類(lèi),Item類(lèi)沒(méi)有任何實(shí)現(xiàn),DictItem繼承了Collection類(lèi)的特性。
其中有一個(gè)field={ }的字典屬性,用于存放Field類(lèi)創(chuàng)建的字典。
Item Loader :
位置:from scrapy.contrib.loader import ItemLoader
ItemLoader主要用途就是擴(kuò)展裝載數(shù)據(jù)的方式。
主要方法:
def init(self, item=None, selector=None, response=None, parent=None, **context):
當(dāng)selector沒(méi)有指定時(shí),有一全局屬性default_selector_class = Selector
同理item為空時(shí):item = self.default_item_class()
def add_xpath(self, field_name, xpath, *processors, **kw):#以某種形式取出數(shù)據(jù)
def load_item(self):#該方法將數(shù)據(jù)存入item中
使用:
l=ItemLoader(item=TextScrapyItem,response=response)
l.add_xpath('name','xpath表達(dá)式')
l.load_item( )#將數(shù)據(jù)從Item loder中存到Item中
其中:
self._local_values = defaultdict(list)#用來(lái)在Item Loader中存數(shù)據(jù)
其中還有很多細(xì)節(jié),目前沒(méi)有太過(guò)仔細(xì)看,學(xué)習(xí)了一下基礎(chǔ)。