2012-03-01 7 views

Respuesta

2

es puramente depende de su lógica de negocio. pero esto va a funcionar para usted

crawler.engine.close_spider(self, 'log message') 

Suggested Reading

Suggested Reading

y la peor solución es

import sys 

sys.exit("SHUT DOWN EVERYTHING!") 
7

En la araña, puede simplemente tirar CloseSpider excepción.

def parse_page(self, response): 
    if 'Bandwidth exceeded' in response.body: 
     raise CloseSpider('bandwidth_exceeded') 

Para otros (middleware, tuberías, etc.), puede llamar manualmente close_spider como akhter mencionado.

+0

¿Cuál es el lugar ideal para atrapar las excepciones de la araña en el tratamiento? Gracias –

10

Desde 0,11, no es CLOSESPIDER_ERRORCOUNT:

un número entero que especifica el número máximo de errores para recibir antes de cerrar la araña. Si la araña genera más que esa cantidad de errores, se cerrará con el motivo closespider_errorcount. Si es cero (o no establecido), las arañas no se cerrarán por el número de errores.

Si se establece en 1, la araña se cerrará en la primera excepción.

+0

Gracias! Tuve el mismo problema y esto funcionó para mí. –

+3

No funciona desde las tuberías –

Cuestiones relacionadas