Есть ли способ изменить ответ, используемый в ItemLoader, например, я анализирую две страницы и передаю my_item в мета, ответ в загрузчике элементов является первым (где я его изначально определил).
В настоящее время я использую 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()
@programmerwiz32 точно
не могли бы вы также проверить это [stackoverflow.com/questions/56995150/…
ага, поэтому я должен загрузить элемент, прежде чем передать его второй функции