Обработка IndexError, используя лямбда-функции в scrapy


Я написал скрипт с использованием библиотеки scrapy Python, чтобы разобрать некоторые поля из Craigslist. Паук я создал вот путь нормальным, чем то, что принято считать идеальным для быть пересмотрены. Однако, я пытался справиться с list index out of error вопрос с помощью настроенной функции в scrapy. Там может быть лучшего способа сделать это, но что я заметил, что с одним я пытался, что когда есть несколько полей, чтобы очистить потом этот настроенный функции играют жизненно важную роль для решения этих полей, значения которых их нет. Я буду отличаться рад, что есть идеи получше сделать то же самое. Спасибо заранее.

Вот что я пробовал:

import scrapy
from scrapy.crawler import CrawlerProcess

class CraigsspSpider(scrapy.Spider):
    name = 'craigssp'

    start_urls = ['http://bangalore.craigslist.co.in/search/rea?s=120']
    #the below function is able to handle IndexError
    get_result = lambda item,path:item.css(path).extract_first() if item.css(path) else ""

    def parse(self, response):
        for items in response.css(".result-info"):
            date = CraigsspSpider.get_result(items,".result-date::text")
            name = CraigsspSpider.get_result(items,".hdrlnk::text")
            price = CraigsspSpider.get_result(items,".result-price::text")
            yield{'Date':date,'Name':name,'Price':price}

c = CrawlerProcess({
    'USER_AGENT': 'Mozilla/5.0',   
})
c.crawl(CraigsspSpider)
c.start()


Комментарии