爬虫蜘蛛项目加载器Item Loader类详解之ItemLoader对象详解 (21)python SCRAPY最新教程1.51以上版本
classscrapy.loader.ItemLoader([item,selector,response,]** kwargs )
返回一个新的Item Loader来填充给定的Item。如果没有给出项目,则使用该类自动实例化一个项目 default_item_class。
当使用选择器或响应参数进行实例化时,ItemLoader该类提供了使用选择器从网页中提取数据的便利机制。
| 参数: |
|---|
项目,选择器,响应和其余关键字参数分配给Loader上下文(可通过context属性访问)。
ItemLoader 实例有以下方法:
valueget_value(*processors,re=None,**kw,)- 处理给
value定processors和关键字参数给定的给定。可用关键字参数:
参数: re(str 或者编译的正则表达式) – 一个正则表达式,用于从 extract_regex()处理器之前应用的方法中提取给定值的数据例子:
>>> from scrapy.loader.processors import TakeFirst >>> loader.get_value(u'name: foo', TakeFirst(), unicode.upper, re='name: (.+)') 'FOO`
field_nameadd_value(value,*processors,re=None,**kw,)- 处理然后添加给
value定字段的给定。首先通过
get_value()给出processors和传递该值kwargs,然后通过 字段输入处理器并将其结果附加到为该字段收集的数据中。如果该字段已包含收集的数据,则添加新数据。给定的
field_name可以是None,在这种情况下,可以添加多个字段的值。并且处理后的值应该是一个字典,其中field_name映射到值。例子:
loader.add_value('name', u'Color TV') loader.add_value('colours', [u'white', u'blue']) loader.add_value('length', u'100') loader.add_value('name', u'name: foo', TakeFirst(), re='name: (.+)') loader.add_value(None, {'name': u'foo', 'sex': u'male'})
xpathget_xpath(*processors,re=None,**kw,)- 类似于
ItemLoader.get_value()但接收XPath而不是值,该值用于从与此关联的选择器中提取unicode字符串列表ItemLoader。参数: - xpath(str) – 从中提取数据的XPath
- re(str 或编译的正则表达式) – 用于从所选XPath区域提取数据的正则表达式
例子:
# HTML snippet: <p class="product-name">Color TV</p> loader.get_xpath('//p[@class="product-name"]') # HTML snippet: <p id="price">the price is $1200</p> loader.get_xpath('//p[@id="price"]', TakeFirst(), re='the price is (.*)')
field_nameadd_xpath(xpath,*processors,re=None,**kw,)- 类似于
ItemLoader.add_value()但接收XPath而不是值,该值用于从与此关联的选择器中提取unicode字符串列表ItemLoader。见
get_xpath()的kwargs。参数: xpath(str) – 从中提取数据的XPath 例子:
# HTML snippet: <p class="product-name">Color TV</p> loader.add_xpath('name', '//p[@class="product-name"]') # HTML snippet: <p id="price">the price is $1200</p> loader.add_xpath('price', '//p[@id="price"]', re='the price is (.*)')
cssget_css(*processors,re=None,**kw,)- 类似
ItemLoader.get_value()但接收CSS选择器而不是值,用于从与此关联的选择器中提取unicode字符串列表ItemLoader。参数: 例子:
# HTML snippet: <p class="product-name">Color TV</p> loader.get_css('p.product-name') # HTML snippet: <p id="price">the price is $1200</p> loader.get_css('p#price', TakeFirst(), re='the price is (.*)')
field_nameadd_css(css,*processors,re=None,**kw,)- 类似
ItemLoader.add_value()但接收CSS选择器而不是值,用于从与此关联的选择器中提取unicode字符串列表ItemLoader。参数: css(str) – 从中提取数据的CSS选择器 例子:
# HTML snippet: <p class="product-name">Color TV</p> loader.add_css('name', 'p.product-name') # HTML snippet: <p id="price">the price is $1200</p> loader.add_css('price', 'p#price', re='the price is (.*)')
load_item()- 使用目前为止收集的数据填充项目,并将其返回。收集的数据首先通过输出处理器,以获得分配给每个项目字段的最终值。
xpathnested_xpath()- 使用xpath选择器创建嵌套加载器。提供的选择器相对于与此关联的选择器应用
ItemLoader。嵌套装载机股份Item与母公司ItemLoader如此呼吁add_xpath(),add_value(),replace_value()等会像预期的那样。
cssnested_css()- 使用css选择器创建嵌套加载器。提供的选择器相对于与此关联的选择器应用
ItemLoader。嵌套装载机股份Item与母公司ItemLoader如此呼吁add_xpath(),add_value(),replace_value()等会像预期的那样。
field_nameget_input_processor()- 返回给定字段的输入处理器。
field_nameget_output_processor()- 返回给定字段的输出处理器。
ItemLoader 实例具有以下属性:
context- 此项加载器的当前活动上下文。
default_item_class- 一个Item类(或工厂),用于在构造函数中未给出时实例化项。
default_input_processor- 默认输入处理器,用于那些未指定一个的字段。
default_output_processor- 默认输出处理器,用于那些未指定的字段。
default_selector_class- 如果只在构造函数中给出响应,则用于构造
selectorthis 的类ItemLoader。如果在构造函数中给出了选择器,则忽略此属性。有时在子类中重写此属性。
selectorSelector从中提取数据的对象。它可以是构造函数中给出的选择器,也可以是使用构造函数在构造函数中给出的响应default_selector_class。此属性是只读的。
评论被关闭。