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