Tengo un Scrapy CrawlSpider que tiene una lista muy grande de URL para rastrear. Me gustaría poder detenerlo, guardar el estado actual y reanudarlo más tarde sin tener que volver a empezar. ¿Hay alguna manera de lograr esto dentro del marco de Scrapy?¿Cómo puedo detener un CrawlSpider de scrapy y luego reanudo donde lo dejó?
Respuesta
Hubo una pregunta sobre el ML hace tan sólo unos meses: http://groups.google.com/group/scrapy-users/browse_thread/thread/6a8df07daff723fc?pli=1
Cita Pablo:
No sólo estamos considerando, sino también a trabajar en él. Existen actualmente dos parches de trabajo en mi MQ que añadan esta funcionalidad en caso de que alguien quiere probar una primera vista previa (que necesitan para ser aplicado en orden): http://hg.scrapy.org/users/pablo/mq/file/tip/scheduler_single_spider .... http://hg.scrapy.org/users/pablo/mq/file/tip/persistent_scheduler.patch Para ejecutar una araña como antes (sin persistencia):
scrapy crawl thespider
para ejecutar una araña almacenar planificador + dupefilter estado en un dir:
scrapy crawl thespider --set SCHEDULER_DIR=run1
Durante el rastreo, que puede golpear^C para cancelar el rastreo y reanudarla más tarde con:
scrapy crawl thespider --set SCHEDULER_DIR=run1
el nombre del ajuste SCHEDULER_DIR está obligado a cambiar antes del lanzamiento final , pero la idea será la misma - que se pasa un directorio donde persista el estado.
Debe usar JOBDIR no SCHEDULER_DIR (consulte la publicación de niko_gramophon a continuación). – Naijaba
Solo quería compartir esa característica que se incluye en la última versión de scrapy, pero el nombre del parámetro ha cambiado. Usted debe utilizar de esta manera:
scrapy rastreo thespider --set JOBDIR = run1
Más información aquí http://doc.scrapy.org/en/latest/topics/jobs.html#job-directory
@niko_gramphon, ¿sabes si esto confirma el estado dupefilter? y también, ¿necesitamos agregar código de vestuario si estamos escribiendo en un archivo csv y queremos simplemente reanudar usando el mismo archivo? Gracias. – x89a10
Scrapy ahora tiene la característica de trabajo para esto en su sitio documentado aquí:
aquí está el comando real:.
scrapy crawl somespider -s JOBDIR=crawls/somespider-1
- 1. ¿Cómo acceder a una start_url específica en un Scrapy CrawlSpider?
- 2. ¿Por qué no funcionan mis reglas de Scrapy CrawlSpider?
- 3. Scrapy CrawlSpider: cómo acceder al elemento en diferentes niveles de análisis
- 4. Scrapy BaseSpider: ¿Cómo funciona?
- 5. scrapy codificación de texto
- 6. Scrapy - Seguir enlaces RSS
- 7. rastreo recursivo con Python y Scrapy
- 8. Scrapy SgmlLinkExtractor pregunta
- 9. ¿Cómo firmar un archivo y luego verificarlo?
- 10. ¿Puedo detener un System.Threading.Timer
- 11. cómo sobrescribir/usar cookies en scrapy
- 12. Descarga de imágenes con scrapy
- 13. ¿Cómo puedo detener todas las animaciones de jQuery?
- 14. Scrapy - analizar una página para extraer elementos - luego seguir y almacenar contenido de la URL del elemento
- 15. ¿Cómo puedo hacer que scrapy se rompa y salga cuando encuentre la primera excepción?
- 16. ¿Cómo se muestra VIM en el terminal y luego lo lleva de regreso?
- 17. ¿Cómo crear un archivo ZIP usando PHP y eliminarlo luego de que el usuario lo descargue?
- 18. usando tor con scrapy framework
- 19. ¿Cómo puedo mejorar la velocidad de descarga de scrapy?
- 20. ¿Cómo puedo detener un ciclo While?
- 21. Scrapy está siguiendo y raspando enlaces no permitidos
- 22. dejó y flet en Emacs Lisp
- 23. Donde puedo reportar un error de git
- 24. ¿Cómo puedo colocar una imagen en un contenedor y luego actualizar el contenedor según lo que se le cayó?
- 25. cómo implementar un elemento anidado en scrapy?
- 26. Scrapy SgmlLinkExtractor está ignorando los enlaces permitidos
- 27. ¿Cómo tomo un archivo de imagen y lo convierto en un ráster y luego accedo a sus datos?
- 28. Cómo detener y reanudar correctamente un CADisplayLink?
- 29. Android: ¿Cómo puedo detener Runnable?
- 30. ¿Cómo puedo configurar una cookie y luego redirigirla en PHP?
a partir de Scrapy v 0.16 ahora soporta aquí: http://doc.scrapy.org/en/0.16/topics/jobs.html –