爬虫蜘蛛项目加载器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
- 如果只在构造函数中给出响应,则用于构造
selector
this 的类ItemLoader
。如果在构造函数中给出了选择器,则忽略此属性。有时在子类中重写此属性。
selector
Selector
从中提取数据的对象。它可以是构造函数中给出的选择器,也可以是使用构造函数在构造函数中给出的响应default_selector_class
。此属性是只读的。
评论被关闭。