scrapy item loader return list not single value

python, python-2.7, scrapy, web-scraping

Solution

You need to set an Input or Output processor. `TakeFirst` would work perfectly in your case.

There are multiple places where you can define it, e.g. in the `Item` definition:

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())

Or, set a `default_output_processor` on a `XpathItemLoader()` instance:

l.default_output_processor = TakeFirst()

Problem

I am using scrapy 0.20. I want to use item loader this is my code: ``` 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() ``` I got the result in the json file. the `url` is a list. The `title` is a list. The `developer` is a list. How to extract single value instead of the list? Should I make an item pipeline for that? I hope there is a faster way

Original source