Manejo de errores en Web Scraping

Anticipar el faltante de contenido string en una extracción: 

for noticia in noticias:
    item = ItemLoader(Noticia(), response.body)
    titular = noticia.find('a').text
    descripcion = noticia.find('p').text
    item.add_value('titular', titular)
    item.add_value('descripcion', descripcion)
    yield item.load_item()

cuando se extraen datos, esperando siempre que haya texto en su contenido puede ocurrir el error de

 AttributeError: ‘NoneType’ object has no attribute ‘text’

significa que espera extraer algo pero es de tipo NONE ahí esta el conflicto, se resuelve introduciendo un if que anticipe esta situación.

for noticia in noticias:
    item = ItemLoader(Noticia(), response.body)

    titular = noticia.find('a')
    descripcion = noticia.find('p').text

    if (titular != None):
        titular = titular.text
    else:
        titular = 'N/A'

    item.add_value('titular', titular)
    item.add_value('descripcion', descripcion)
    yield item.load_item()

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *