Scrapy Item Loaders-从给定节点而不是根选择器开始处理

Scrapy Item Loaders-从给定节点而不是根选择器开始处理,scrapy,Scrapy,我有一个xpath表达式,它在页面上指向一个“product”元素(实际上是HTML5微数据)。嵌套在该元素下的是产品名称、描述、价格等的各种其他元素 目前,我正在将根选择器对象传递给项目加载器,然后构造一个很长的xpath语句来检索产品属性,例如 l.add_xpath('name', {LONG XPATH TO PRODUCT ELEMENT} + {LONG XPATH TO NAME ELEMENT}) l.add_xpath('price', {LONG XPATH TO PRODU

我有一个xpath表达式,它在页面上指向一个“product”元素(实际上是HTML5微数据)。嵌套在该元素下的是产品名称、描述、价格等的各种其他元素

目前,我正在将根选择器对象传递给项目加载器,然后构造一个很长的xpath语句来检索产品属性,例如

l.add_xpath('name', {LONG XPATH TO PRODUCT ELEMENT} + {LONG XPATH TO NAME ELEMENT})
l.add_xpath('price', {LONG XPATH TO PRODUCT ELEMENT} + {LONG XPATH TO PRICE ELEMENT})

这在xpath处理方面似乎效率很低,有没有方法告诉ItemLoader从给定节点开始?或者我需要编写自己的ItemLoader来处理这个场景吗?谢谢

这其实很明显,现在我对选择器有了更多的了解。xpath()返回选择器列表,以便执行以下操作:

productSelector = selector.xpath({xpath to product})[0] # assumes match

l = ItemLoader(item=productItem, selector=productSelector)
l.add_xpath('name', {xpath to product name})

这其实很明显,现在我对选择器有了更多的了解。xpath()返回选择器列表,以便执行以下操作:

productSelector = selector.xpath({xpath to product})[0] # assumes match

l = ItemLoader(item=productItem, selector=productSelector)
l.add_xpath('name', {xpath to product name})

我还要强调,解决方案的关键是
selector
参数。我还要强调的是,解决方案的关键是
selector
参数。装载机的一部分。