Sono bloccato durante l'avvio di più istanze dello stesso spider. Voglio eseguirlo come 1 url per 1 istanza Spider. Devo elaborare 50k URL e per questo ho bisogno di avviare istanze separate per ciascuno. Nel mio script di spider principale, ho impostato il timeout di closedpider per 7 minuti, per assicurarmi di non essere sottoposto a scansione per un lungo periodo. Si prega di consultare il codice qui sotto:Scrapy - Come avviare più istanze dello stesso processo spider?
from scrapy.crawler import CrawlerProcess
from scrapy.utils.project import get_project_settings
import urlparse
for start_url in all_urls:
domain = urlparse.urlparse(start_url).netloc
if domain.startswith('ww'):
domain = domain.split(".",1)[1]
process = CrawlerProcess(get_project_settings())
process.crawl('textextractor', start_url=start_url,allowed_domains=domain)
process.start()
Corre completamente per il 1 ° url, fresa, dopo che, quando viene passato il 2 ° url dà sotto l'errore:
raise error.ReactorNotRestartable()
ReactorNotRestartable
Si prega di suggerire che cosa devo fare per farlo eseguire per più istanze dello stesso spider. Inoltre, sto pensando di avviare più istanze di scrapy alla volta utilizzando thread. Sarebbe un buon approccio?
Qualsiasi aggiornamento su questo argomento? – UriCS