Scrapy Item Loaders-从给定节点而不是根选择器开始处理
我有一个xpath表达式,它在页面上指向一个“product”元素(实际上是HTML5微数据)。嵌套在该元素下的是产品名称、描述、价格等的各种其他元素 目前,我正在将根选择器对象传递给项目加载器,然后构造一个很长的xpath语句来检索产品属性,例如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
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
参数。装载机的一部分。