¿Cómo es la arquitectura de Scrapy?

Contenido del Bootcamp Dirigido por: | Última modificación: 17 de abril de 2024 | Tiempo de Lectura: 3 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

Los datos siempre necesitarán de una arquitectura que los estructure para llevar a cabo una administración adecuada de la gestión de datos. Incluso se habla de una arquitectura de Scrapy, a pesar de que este es un sistema de extracción de datos en los sitios web.

Precisamente, la arquitectura Big Data remite a la serie de modelos y protocolos adecuados para realizar determinado análisis de datos. A continuación, te enseñamos cómo funciona la arquitectura de Scrapy, cómo se comporta su flujo de datos y, finalmente, cómo falla el Engine en el desarrollo del mismo.

Arquitectura de Scrapy

La arquitectura de Scrapy es mas bien la arquitectura típica de un scraper y de un crawler, ya que se pueden hacer ambas cosas a la vez. Es decir, la arquitectura que te compartiremos corresponde a la de un sistema preparado para extraer datos y URLs desde ciertos sitios y páginas web.

Flujo de datos en la arquitectura de Scrapy

El desarrollo de toda arquitectura posee un comportamiento específico del flujo de datos. A continuación, te explicamos el siguiente gráfico con sus respectivos pasos:

  1. El motor o Scrapy Engine que se encarga de conectar todos los componentes del flujo de datos responde a los comandos para rastrear a partir de la araña.
  2. A partir de allí, el motor gestiona la consecución de los datos según las solicitudes del programador.
  3. El flujo vuelve de forma continua al programador para llevar a cabo la gestión de datos.
  4. Posteriormente, el Scrapy Engine envía las requests al descargador, y este último es el encargado de buscar las páginas web y enviarlas al motor.
  5. Una vez los datos terminan de descargarse de la página web, el downloader envía una respuesta al motor atravesando los downloader middlewares.
  6. El flujo de datos continúa con el motor recibiendo la respuesta del descargador y cediéndola al Spider para que la procese.
  7. Después de que la araña procese la información, devuelve al motor los elementos eliminados junto a las nuevas requests.
  8. El Scrapy Engine envía los datos a la canalización de elementos y las solicitudes al programador para continuar con las siguientes.
  9. Finalmente, el flujo de datos de la arquitectura de Scrapy se repite a partir del tercer paso hasta que dejan de otorgarse solicitudes al sistemas de extracción de datos.
Esquema con los pasos anteriores

¿Por qué falla el Engine?

Como habrás notado, en la arquitectura de Scrapy, el Scrapy Engine o motor de Scrapy es fundamental para llevar a cabo la gestión de datos en estos sistemas de extracción de datos de páginas web. En efecto, debe haber un motor por entorno con N crawlers.

Por otra parte, llamar a Scrapy de forma programática no es quizás la mejor solución; es por este motivo que te presentamos dos opciones:

Scrapy Common Practices

Scrapy Common Practices son una serie de prácticas que hacen referencia a los procesos de implementación Scrapy más comunes, como son las siguientes:

  • Ejecutar Scrapy desde un script, en vez de la forma convencional de scrapy crawl.
  • La facilidad de ejecutar varias arañas en un mismo proceso, de manera que puedas implementar web spiders simultáneamente.
  • Tendrás la oportunidad de realizar rastreos distribuidos gracias a la configuración de las instancias de Scrapyd y distribuyendo las arañas web.
  • Podrás evitar ser baneado gracias a una infraestructura especial que te ayudará a evitar que los bots te rastreen.
  • Por último, contar con la posibilidad de la creación de dinámica de clase de artículos, de manera que no tendrás que codificarlas manualmente.

Scrapy Shell

Por su parte, scrapy shell hace referencia a la terminal interactiva que consiste en depurar el código de rastreo de la araña web. Mediante dicha terminal podrás intentar hacerlo con expresiones como CSS o XPath. Para ello, se emplean diferentes dinámicas, como las que mencionamos a continuación:

  • La configuración de carcasa por medio de la instalación de IPython o, en su defecto, con el uso de Bpython.
  • La estrategia de lanzar el caparazón, de manera que se estipule una URL específica para llevar a cabo el raspado de datos.
  • La oportunidad de usar el caparazón de las arañas para inspeccionar las respuestas y generar accesos directos.

¿Cuál es el siguiente paso?

En el transcurso de este post, habrás podido identificar la estructura y el funcionamiento de la arquitectura de Scrapy. Ahora que has aprendido sobre el flujo de datos que maneja este tipo de arquitectura y cada uno de sus componentes para llevar a cabo el procesamiento de la información de manera efectiva, debes saber que aún queda mucho más por descubrir. El ecosistema de Big Data es un campo muy amplio y, para especializarte en él, te recomendamos que continúes con tu proceso de formación gracias a nuestro Bootcamp Full Stack Big Data, Inteligencia Artificial & Machine Learning. No lo dudes y ¡apúntate ya! En pocos meses te convertirás en un profesional del sector IT.

Sandra Navarro

Business Intelligence & Big Data Advisor & Coordinadora del Bootcamp en Data Science, Big Data & Machine Learning.

Posts más leídos

¡CONVOCATORIA ABIERTA!

Big Data, IA & Machine Learning

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado