¿Es una buena idea construir un motor de raspado web utilizando solo Node.JS y una cola de trabajos respaldada con Redis?

Usar redis como cola de trabajo está bien, aunque probablemente sea mucho más eficiente de lo requerido. De cualquier manera, funcionará bien. Ciertamente puede usar Node.js para obtener y raspar sitios web, pero no sería la forma más eficiente de hacerlo. No es realmente para lo que está diseñado. Puede escribir algo compilado para la velocidad o usar un lenguaje de secuencias de comandos diseñado para hacer este tipo de tarea o simplemente usar herramientas de línea de comandos. Además, tenga en cuenta que este tipo de cosas son perfectas para el procesamiento en paralelo, ya que cada página que se raspa es completamente independiente de todas las demás. Node.js es de un solo subproceso y solo procesará una página a la vez, no muy eficiente. Tiene la ventaja de módulos como cheerio para un fácil raspado.

Perl es excelente para cortar y cortar texto en cubos y tiene módulos especiales escritos específicamente para raspar HTML. También es de un solo subproceso, pero puede comenzar un nuevo proceso para cada uno, pero eso también es cierto para JavaScript.

También puede escribir un script bash simple para hacer esto, ejecutando cada uno como su propio proceso para obtener un procesamiento paralelo. Hay más herramientas de las que te gustaría pensar en el paquete de utilidades HTML / XML del W3C: HTML-XML-utils. Por ejemplo, mira esto: Análisis de HTML

Se trata de lo que es más importante en su situación. Velocidad de procesamiento, facilidad de desarrollo, habilidades aplicables de los desarrolladores, etc. Pure Node.js y redis funcionarán, otros enfoques serán más eficientes pero requerirán una gama más amplia de habilidades para implementar.

Editado para agregar: acabo de ver este artículo que puede ser útil o no (en realidad no lo leí, solo el titular): Una introducción al Web Scraping con Node JS – codeburst

Obtener, Mostrar datos usando nodejs.
Analizar, analizar, extraer datos utilizando un lenguaje compilado.