tutorial span item follow extractfirst python web-scraping scrapy scrapy-spider

python - span - Scrapy-¿Cómo iniciar instancias múltiples del mismo proceso de araña?



select scrapy (1)

Estoy atascado al iniciar varias instancias de la misma araña. Quiero ejecutarlo como 1 url para 1 instancia de araña. Tengo que procesar 50k urls y para esto necesito iniciar instancias separadas para cada una. En mi script spider principal, configuré closedidider timeut durante 7 minutos, para asegurarme de que no estoy rastreando durante mucho tiempo. Por favor mira el código a continuación:

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()

Funciona completamente para 1st url, bur después de que cuando se pasa la segunda url da el siguiente error:

raise error.ReactorNotRestartable() ReactorNotRestartable

Sugiera qué debo hacer para que se ejecute en varias instancias de la misma araña. Además, estoy pensando en iniciar varias instancias de scrapy a la vez usando hilos. ¿Sería un buen enfoque?


Qué tal esto

process = CrawlerProcess(get_project_settings()) for start_url in all_urls: domain = urlparse.urlparse(start_url).netloc if domain.startswith(''ww''): domain = domain.split(".",1)[1] process.crawl(''textextractor'', start_url=start_url,allowed_domains=domain) process.start()