Подтвердить что ты не робот

Возвратный список загрузчика объекта scrapy

Я использую scrapy 0.20.

Я хочу использовать загрузчик элементов

это мой код:

l = XPathItemLoader(item=MyItemClass(), response=response)
        l.add_value('url', response.url)
        l.add_xpath('title',"my xpath")
        l.add_xpath('developer', "my xpath")
return l.load_item()

Я получил результат в json файле. url - это список. Список title - это список. Список developer - это список.

Как извлечь одиночное значение вместо списка?

Должен ли я создать конвейер для этого? Я надеюсь, что есть более быстрый способ

4b9b3361

Ответ 1

Вам нужно установить входной или выходной процессор. TakeFirst будет отлично работать в вашем случае.

Существует несколько мест, где вы можете определить его, например. в определении Item:

from scrapy.item import Item, Field
from scrapy.loader.processors import TakeFirst

class MyItem(Item):
    url = Field(output_processor=TakeFirst())
    title = Field(output_processor=TakeFirst())
    developer = Field(output_processor=TakeFirst())

Или, установите default_output_processor в экземпляре XpathItemLoader():

l.default_output_processor = TakeFirst()