0

我有一个ProductItemlLoader只是一个简单ItemlLoader的加载到一个简单ProductItemoffer_type字段

我运行这段代码:

il = ProductItemLoader(response=response)
il.add_css('offer_type', '.incentive-type-label')

并收到: RuntimeError: To use XPath or CSS selectors, ItemLoader be instantiated with a selector

我究竟做错了什么??

4

2 回答 2

1

声明 ItemLoader 的更简洁的方法如下:

item = ItemLoader(item=ProductItem(), selector=response)

如果您循环通过更广泛的选择器的循环:

sel = response.xpath('//xpath/selection')    # return a list of Selectors

for one_product in sel:
    item = ItemLoader(item=ProductItem(), response=response, selector=one_product)
    # item populating
    # yielding the item

于 2021-01-02T15:16:23.000 回答
0

所以事实证明,我在scrapy 1.4 上运行了这段代码,现在我搬到了scrapy 2.3 上。

在旧版本中它运行良好,但现在,为了使用选择器,我必须添加一些行并删除旧行。

所以代替这个: il = ProductItemLoader(response=response)

我现在需要这样做:

from scrapy.selector import Selector

selector = Selector(response=response, type='html')
il = AudiDealItemLoader(selector=selector)

来自文档的参考

于 2020-09-18T16:18:20.463 回答