scrapy itemloader中的更改响应

scrapy itemloader中的更改响应,scrapy,Scrapy,是否有方法更改项目加载器中使用的响应,例如,我正在解析两个页面,并在meta中传递我的_项目,项目加载器中的响应是第一个(我最初定义它的位置)。 我当前正在使用my_item.add_value('price','response.xpath('//p[@id=“price”])。extract_first()以通过此操作,因为我无法使用my_item.add_xpath('price','//p[@id=“price”]),因为响应来自初始页面 my_item = ItemLoader(ite

是否有方法更改
项目加载器中使用的响应,例如,我正在解析两个页面,并在meta中传递我的_项目,项目加载器中的响应是第一个(我最初定义它的位置)。
我当前正在使用
my_item.add_value('price','response.xpath('//p[@id=“price”])。extract_first()
以通过此操作,因为我无法使用
my_item.add_xpath('price','//p[@id=“price”])
,因为响应来自初始页面

my_item = ItemLoader(item=MyItem(),response=response)
#fill my_item
yield Request(My_url,callback=self.parse_item,meta={'my_item':my_item)

你需要这样的东西:

def parse(self, response):

    l = ItemLoader(item=YourItem(), response=response)
    l.add_xpath('Field1', '...')
    l.add_value('Field2', '...')

    item = l.load_item()

    yield scrapy.Request(
        url=another_url,
        callback=self.second,
        meta={'item': item}
    )

def second(self, response):

    l = ItemLoader(item=response.meta["item"], response=response)
    l.add_xpath("Field3", '...')

    yield l.load_item()

啊哈,所以我应该在把它传递给第二个之前加载它function@programmerwiz32好的,你也可以看看这个吗[