2012-03-01 18 views

risposta

2

dipende esclusivamente dalla logica aziendale. ma questo funzionerà per voi

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

Suggested Reading

Suggested Reading

e la soluzione peggiore è

import sys 

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

In ragno, si può semplicemente gettare CloseSpider eccezione.

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

Per altri (middleware, gasdotti, ecc), è possibile chiamare manualmente close_spider come Akhter menzionato.

+0

Qual è il luogo ideale per catturare le eccezioni di ragno in scrapy? Grazie –

10

Da 0,11, c'è CLOSESPIDER_ERRORCOUNT:

Un numero intero che specifica il numero massimo di errori di ricevere prima di chiudere il ragno. Se lo spider genera più di quel numero di errori, verrà chiuso con il motivo closespider_errorcount. Se zero (o non impostato), gli spider non saranno chiusi dal numero di errori.

Se è impostato su 1, lo spider verrà chiuso alla prima eccezione.

+0

Grazie! Ho avuto lo stesso problema e questo ha funzionato per me. –

+3

Non funziona dalle pipeline –

Problemi correlati