---
title: "Gerapy Web Scraping: Guía de implementación de Scrapy en toda la pila"
slug: web-scraping-with-gerapy
date: 2025-06-08T09:03:44+00:00
modified: 2025-11-04T08:50:04+00:00
permalink: https://brightdata.es/blog/datos-web/web-scraping-with-gerapy
type: blog
---

[ Blog ](https://brightdata.es/blog "Blog") / [Datos web](https://brightdata.es/blog/datos-web)







 [Datos web](https://brightdata.es/blog/datos-web)

# Gerapy Web Scraping: Guía de implementación de Scrapy en toda la pila

Domine el scraping web con Gerapy. Esta guía cubre la configuración, corrección de errores, consejos de implementación y mucho más.

 12 min de lectura





 [ ![Jacob Nulty](https://media.brightdata.es/2024/12/Jacob-Nulty-50x50.jpg) ](https://brightdata.com/blog/authors/jake-nulty)

 [Jake Nulty

Technical Writer

 ](https://brightdata.com/blog/authors/jake-nulty)





 ![Web Scraping with Gerapy blog image](https://media.brightdata.es/2025/05/Web-Scraping-with-Gerapy.svg)





[Gerapy](https://github.com/Gerapy/Gerapy) es una solución completa para el despliegue [de Scrapy](/blog/procedimientos/web-scraping-with-scrapy). Si nos fijamos en el [historial de commits](https://github.com/Gerapy/Gerapy/commits/master/?after=7c4eda875563f5d0342a3650959e0502bc279d77+34), ha recibido algunos golpes de dependencia, pero en realidad no se ha actualizado desde 2022. Poner en marcha Gerapy puede ser un proceso difícil a menudo lleno de ensayo y error.

Esta guía existe para hacer Gerapy más fácil. Al final de esta guía, usted será capaz de responder a las siguientes preguntas.

- ¿Por qué Gerapy no funciona con mi instalación estándar de Python?
- ¿Cómo puedo configurar Python y pip para Gerapy?
- ¿Cómo puedo crear una cuenta de administrador?
- ¿Cómo escribo mi primer rascador?
- ¿Cómo puedo solucionar los problemas de mi rascador?
- ¿Cómo pruebo e implanto mi rascador?

## Introducción a Gerapy

Conozcamos mejor qué es realmente Gerapy y qué lo hace único.

### ¿Qué es Gerapy?

Gerapy nos proporciona un panel de gestión de Django y la API Scrapyd. Estos servicios le dan una interfaz sencilla pero potente para gestionar su pila. En este punto, se trata de un programa heredado, pero aún así mejora el flujo de trabajo y acelera el despliegue. Gerapy hace que el web scraping sea más accesible para DevOps y los equipos orientados a la gestión.

- Interfaz gráfica de usuario para crear y supervisar rascadores.
- Despliegue un rascador con sólo pulsar un botón.
- Obtenga visibilidad en tiempo real de los registros y los errores a medida que se producen.

### ¿Qué hace que Gerapy sea único?

Gerapy le ofrece una ventanilla única para la gestión de scraper. La puesta en marcha de Gerapy es un proceso tedioso debido a su código heredado y sus dependencias. Sin embargo, una vez que lo tenga funcionando, desbloqueará un conjunto de herramientas completo adaptado para gestionar scrapers a escala.

- Construya sus raspadores desde dentro del navegador.
- Despliégalos en Scrapyd sin tocar la línea de comandos.
- Gestión centralizada de todos sus crawlers y scrapers.
- Frontend construido sobre Django para la gestión de arañas.
- Backend desarrollado por Scrapyd para facilitar la creación y el despliegue.
- Programador integrado para la automatización de tareas.

## Cómo raspar la Web con Gerapy

El proceso de configuración de Gerapy es laborioso. Es necesario abordar la deuda técnica y realizar el mantenimiento del software. Tras muchas pruebas y errores, descubrimos que Gerapy ni siquiera es compatible con las versiones más modernas de Python. Empezamos con una instalación moderna de Python 3.13. **Era demasiado moderna para las dependencias de Gerapy**. Probamos con la versión 3.12, pero no hubo suerte, sólo más problemas de dependencias.

Resultó que necesitábamos Python 3.10. Además, tuvimos que modificar parte del código de Gerapy para corregir una clase obsoleta, y luego **tuvimos que reducir manualmente casi todas las dependencias de Gerapy**. Python ha experimentado cambios significativos en los últimos tres años y el desarrollo de Gerapy no ha seguido el mismo ritmo. Necesitamos recrear las condiciones ideales de Gerapy de hace tres años.

### Configuración del proyecto

#### Python 3.10

Para empezar, necesitamos instalar Python 3.10. Esta versión no está extinta, pero ya no está ampliamente disponible. En Ubuntu nativo y Windows WSL con Ubuntu, se puede instalar con apt.

```none
sudo apt update
sudo apt install software-properties-common
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.10 python3.10-venv python3.10-dev
```

A continuación, puede comprobar si está instalado con el indicador `--version`.

```none
python3.10 --version
```

Si todo va bien, debería ver una salida similar a la que se muestra a continuación.

```none
Python 3.10.17
```

#### Creación de una carpeta de proyecto

En primer lugar, cree una nueva carpeta.

```none
 mkdir gerapy-environment
```

A continuación, tenemos que `entrar` en la carpeta de nuestro nuevo proyecto y configurar un entorno virtual.

```none
cd gerapy-environment
python3.10 -m venv venv
```

Activar el entorno.

```none
source venv/bin/activate
```

Una vez que tu entorno esté activo, puedes comprobar la versión activa de Python.

```none
python --version
```

Como se puede ver, `python` ahora por defecto a nuestra instalación 3.10 desde dentro del entorno virtual.

```none
Python 3.10.17
```

#### Instalación de dependencias

El siguiente comando instala Gerapy y sus versiones dependientes requeridas. Como se puede ver, tenemos que apuntar manualmente muchos paquetes heredados utilizando `pip==`.

```none
pip install setuptools==80.8.0
pip install scrapy==2.7.1 gerapy==0.9.13 scrapy-splash==0.8.0 scrapy-redis==0.7.3 scrapyd==1.2.0 scrapyd-client==1.2.0 pyopenssl==23.2.0 cryptography==41.0.7 twisted==21.2.0
```

Ahora crearemos un proyecto Gerapy real con el comando `init`.

```none
gerapy init
```

A continuación, `entraremos` en nuestra carpeta `gerapy` y ejecutaremos `migrate` para crear nuestra base de datos.

```none
cd gerapy
gerapy migrate
```

Ahora, es el momento de crear una cuenta de administrador. Este comando te da privilegios de administrador por defecto.

```none
gerapy initadmin
```

Por último, iniciamos el servidor Gerapy.

```none
gerapy runserver
```

Deberías ver una salida como esta.

```none
Watching for file changes with StatReloader
Performing system checks...

System check identified no issues (0 silenced).
INFO - 2026-05-24 13:49:16,241 - process: 1726 - scheduler.py - gerapy.server.core.scheduler - 105 - scheduler - successfully synced task with jobs with force
May 24, 2026 - 13:49:16
Django version 2.2.28, using settings 'gerapy.server.server.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
```

#### Uso del panel de control

Si visitas <http://127.0.0.1:8000/>, se te pedirá que inicies sesión. Su nombre de cuenta por defecto es `admin`, al igual que su contraseña. Una vez iniciada la sesión, accederá al panel de control de Gerapy.

![Cuadro de mandos de Gerapy](https://media.brightdata.com/2025/05/Gerapy-Dashboard.png)Haz clic en la pestaña “Proyectos” y crea un nuevo proyecto. Lo llamaremos `"presupuestos"`.

![Creación de un nuevo proyecto Gerapy](https://media.brightdata.com/2025/05/Creating-a-new-Gerapy-project.png)### Cómo llegar al sitio de destino

Ahora, crearemos una nueva araña. Desde tu nuevo proyecto, haz clic en el botón “añadir araña”. En la sección “Urls de inicio”, añade `https://quotes.toscrape.com.` En “Dominios”, introduce `quotes.toscrape.com`.

![Añadir nuestra URL y dominio](https://media.brightdata.com/2025/05/Adding-our-URL-and-domain.png)### Lógica de extracción

A continuación, añadiremos nuestra lógica de extracción. La siguiente función `parse(` ) utiliza selectores CSS para extraer las comillas de la página. Puedes aprender más sobre selectores [aquí](/blog/datos-web/xpath-vs-css-selectors).

Desplácese hasta la sección “Código interno” y añada su función de análisis sintáctico.

```none
def parse(self, response):
    quotes = response.css('div.quote')
    print(f"Found {len(quotes)} quotes")
    for quote in quotes:
        text = quote.css('span.text::text').get()
        author = quote.css('small.author::text').get()
        print(f"Text: {text}, Author: {author}")
        yield {
            'text': text,
            'author': author,
        }
```

Ahora, haz clic en el botón “Guardar” situado en la esquina inferior derecha de la pantalla. Si ejecutas la araña ahora, te encontrarás con un error crítico. Gerapy está intentando utilizar `BaseItem` de Scrapy. Sin embargo, `BaseItem` fue eliminado de Scrapy hace varios años.

![Error BaseItem](https://media.brightdata.com/2025/05/BaseItem-Error.png)### Corrección del error BaseItem

Para resolver este error, en realidad tenemos que editar el código interno de Scrapy. Puedes hacerlo desde la línea de comandos. Sin embargo, es mucho más fácil desde un editor de texto GUI con funciones de búsqueda.

`cd` en los archivos fuente de su entorno virtual.

```none
cd venv/lib/python3.10/site-packages/gerapy/server/core
```

Para abrir la carpeta en VSCode, puede utilizar el siguiente comando.

```none
code .
```

Abre `parser.py`, y encontrarás a nuestro culpable.

![Scrapy intenta importar BaseItem](https://media.brightdata.com/2025/05/Scrapy-Tries-to-Import-BaseItem.png)Debemos sustituir esta línea por la siguiente.

```none
from scrapy import Item
```

![Sustitución de BaseItem por Item en Our
Importaciones](https://media.brightdata.com/2025/05/Replacing-BaseItem-with-Item-in-Our.png)Ahora que hemos eliminado la importación de `BaseItem`, necesitamos eliminar todas las instancias de `BaseItem` con `Item`. Nuestra única instancia está en la función `run_callback()`. Cuando termines de guardar los cambios, cierra el editor.

![Sustitución de BaseItem por Item en todo el fichero](https://media.brightdata.com/2025/05/Replacing-BaseItem-with-Item-Throughout-the-File.png)Si ejecuta su araña, ahora recibirá un nuevo error.

![REQUEST_FINGERPRINTER_IMPLEMENTATION Error de obsoleto](https://media.brightdata.com/2025/05/REQUEST_FINGERPRINTER_IMPLEMENTATION-Deprecation-Error.png)### Arreglo de REQUEST\_FINGERPRINTER\_IMPLEMENTATION Deprecation

No es aparente, pero Gerapy en realidad inyecta nuestra configuración directamente en nuestra araña. `cd` fuera de nuestra carpeta actual y luego en la carpeta de `proyectos`.

```none
cd
cd gerapy-environment/gerapy/projects/quotes
```

Una vez más, abra su editor de texto.

```none
code .
```

Ahora abre tu spider. Debería llamarse `quotes.py` y estar dentro de la carpeta `spiders`. Deberías ver tu función `parse()` dentro de la clase spider. Al final del archivo, deberías ver un array llamado `custom_settings`. Nuestros ajustes han sido literalmente inyectados en la araña por Gerapy.

![Configuración personalizada de la araña](https://media.brightdata.com/2025/05/Custom-Spider-Settings.png)Necesitamos añadir un nuevo ajuste. Necesitas usar `2.7`. La `2.6` seguirá arrojando el error. Descubrimos esto después de numerosas instancias de prueba y error.

```none
"REQUEST_FINGERPRINTER_IMPLEMENTATION": "2.7",
```

Ahora, al ejecutar la araña utilizando el botón de reproducción de Gerapy, se resuelven todos los errores. Como se puede ver a continuación, en lugar de un mensaje de error, sólo vemos una “Solicitud de seguimiento”.

![Nuestra araña funciona ahora sin errores](https://media.brightdata.com/2025/05/Our-Spider-Now-Runs-Without-Any-Errors.png)## Juntarlo todo

### Construcción del rascador

Si vuelve a la pestaña “Proyectos” de Gerapy, verá una “X” en la columna “Construido” del proyecto. Esto significa que nuestro scraper no ha sido construido en un archivo ejecutable para su despliegue.

![Nuestro proyecto de rascador aún no se ha construido](https://media.brightdata.com/2025/05/Our-Scraper-Project-Hasnt-Been-Built.png)Haz clic en el botón “desplegar”. Ahora, haz clic en “construir”.

![El paquete se compila correctamente](https://media.brightdata.com/2025/05/The-package-successfully-builds.png)### Uso del programador

Para programar su rascador para que se ejecute a una hora o intervalo específicos, haga clic en “Tareas” y cree una nueva tarea. A continuación, seleccione la configuración que desee para la programación.

![Establecer el calendario](https://media.brightdata.com/2025/05/Setting-the-desired-schedule.png)Una vez hecho esto, haz clic en el botón “Crear”.

## Limitaciones del raspado con Gerapy

### Dependencias

Su código heredado introduce muchas limitaciones que hemos abordado de frente durante este artículo. Para que Gerapy funcione, hemos tenido que editar su código fuente interno. Si no se siente cómodo tocando las partes internas del sistema, Gerapy no es para usted. ¿Recuerda el error `BaseItem`?

Mientras las dependencias de Gerapy siguen evolucionando, Gerapy permanece congelado en el tiempo. Para seguir utilizándolo, tendrá que mantener su instalación personalmente. Esto añade deuda técnica en forma de mantenimiento y un proceso muy real de prueba y error.

Recuerde este fragmento a continuación. Cada uno de estos números de versión fue descubierto a través de un meticuloso proceso de prueba y error. Cuando las dependencias se rompen, es necesario probar continuamente diferentes números de versión hasta obtener una que funcione. Sólo en este tutorial, hemos tenido que utilizar el método de prueba y error para encontrar versiones funcionales de 10 dependencias. A medida que pase el tiempo, esto sólo empeorará.

```none
pip install setuptools==80.8.0
pip install scrapy==2.7.1 gerapy==0.9.13 scrapy-splash==0.8.0 scrapy-redis==0.7.3 scrapyd==1.2.0 scrapyd-client==1.2.0 pyopenssl==23.2.0 cryptography==41.0.7 twisted==21.2.0
```

### Limitaciones del sistema operativo

Cuando intentamos este tutorial inicialmente, intentamos usar Windows nativo. Así fue como descubrimos las limitaciones iniciales debidas a las versiones de Python. Las versiones estables actuales de Python se limitan a 3.9, 3.11 y 3.13. Gestionar múltiples versiones de Python es difícil independientemente del sistema operativo. Sin embargo, Ubuntu nos ofrece el repositorio PPA `deadsnakes`.

Sin `deadsnakes`, es posible encontrar una versión compatible de Python, pero incluso entonces, necesitas manejar los problemas de PATH y diferenciar entre `python` (tu instalación por defecto) y `python3.10`. Es probable que sea posible manejar esto de forma nativa desde Windows y macOS, pero tendrás que encontrar una solución diferente. Con Ubuntu y otras distribuciones Linux basadas en apt, al menos consigues un entorno reproducible con acceso rápido a versiones anteriores de Python directamente instaladas en tu PATH.

## Integración de proxy con Gerapy

Al igual que con [Scrapy](/integration/scrapy), la integración de proxy es fácil. En el verdadero espíritu de la inyección de configuraciones de Gerapy, podemos inyectar un proxy directamente en la araña. En el siguiente ejemplo, añadimos las opciones `HTTPPROXY_ENABLED` y `HTTPPROXY_PROXY` para conectarnos utilizando [Web Unlocker](/products/web-unlocker).

```none
"HTTPPROXY_ENABLED": True,
"HTTPPROXY_PROXY": "http://brd-customer-<your-username>-zone-<your-zone-name>:<your-password>@brd.superproxy.io:33335"
```

Aquí está la araña completa después de la integración del proxy. Recuerda cambiar el nombre de usuario, zona y contraseña por los tuyos.

![Araña proxy integrada](https://media.brightdata.com/2025/05/Proxy-integrated-spider.png)## Alternativas viables a Gerapy

- [Scrapyd](https://scrapyd.readthedocs.io/en/latest/): Esta es la columna vertebral detrás de Gerapy y casi cualquier otra pila Scrapy. Con Scrapyd, puedes gestionar todo a través de solicitudes HTTP y crear un panel de control si así lo deseas.
- [Funciones](/products/web-scraper/functions) de[scraping](/products/web-scraper/functions): Nuestras funciones de scraping le permiten implementar sus scrapers directamente en la nube y editarlos desde un IDE en línea, con un panel de control como Gerapy pero más flexible y moderno.

## Conclusión

Gerapy es un producto heredado en nuestro mundo en rápida evolución. Requiere un mantenimiento real y tendrá que ensuciarse las manos. Herramientas como Gerapy le permiten centralizar su entorno de scraping y supervisarlo todo desde un único panel. En los círculos de DevOps, Gerapy proporciona utilidad y valor reales.

Si Scrapy no es lo suyo, le ofrecemos muchas alternativas viables para satisfacer su necesidad de recopilación de datos. Los productos a continuación son sólo algunos.

- [Raspador personalizado](/products/web-scraper/custom): Cree raspadores sin necesidad de código e impleméntelos en nuestra infraestructura en la nube.
- [Conjuntos de datos](/products/datasets): Acceda a conjuntos de datos históricos actualizados diariamente de toda la Web. Una biblioteca de la historia de Internet al alcance de tu mano.
- [Proxies residenciales](/proxy-types/residential-proxies): Tanto si prefiere escribir el código usted mismo o [hacer scraping con IA](/blog/ai/best-ai-scraping-tools), nuestros proxies le dan acceso a Internet con geotargeting en una conexión a Internet residencial real.

Regístrese hoy mismo para una prueba gratuita y lleve su recopilación de datos al siguiente nivel.



Contactar ventasPrueba gratuita![google social icon](/wp-content/themes/brightdata/assets/images/ic_google.svg)









 Tabla de Contenidos













 [ ](https://news.ycombinator.com/submitlink?t=Gerapy+Web+Scraping%3A+Gu%C3%ADa+de+implementaci%C3%B3n+de+Scrapy+en+toda+la+pila&u=https://brightdata.es/blog/datos-web/web-scraping-with-gerapy) [ ](https://www.linkedin.com/shareArticle?mini=true&title=Gerapy+Web+Scraping%3A+Gu%C3%ADa+de+implementaci%C3%B3n+de+Scrapy+en+toda+la+pila&url=https://brightdata.es/blog/datos-web/web-scraping-with-gerapy) [ ](http://www.reddit.com/submit?title=Gerapy+Web+Scraping%3A+Gu%C3%ADa+de+implementaci%C3%B3n+de+Scrapy+en+toda+la+pila&url=https://brightdata.es/blog/datos-web/web-scraping-with-gerapy)







##  Usted también puede estar interesado en

 [ ![OpenHuman with Bright Data](https://media.brightdata.es/2026/09/OpenHuman-with-Bright-Data.png) ](https://brightdata.es/blog/ai/openhuman-with-bright-data "Acceso Web Listo para Producción en OpenHuman a Través de la CLI de Bright Data")

 [AI



 ![Antonello Zanini](https://media.brightdata.es/2022/12/Antonello-Zanini-2-50x50.jpg)

Antonello Zanini

Technical Writer





### Acceso Web Listo para Producción en OpenHuman a Través de la CLI de Bright Data

Integra la CLI de Bright Data con OpenHuman para habilitar acceso web listo para producción y recopilación de datos para agentes de IA.



 09-Sep-2026

 14 min de lectura

 ](https://brightdata.es/blog/ai/openhuman-with-bright-data)

 [ ![Multimodal Web Scraping with MiniMax](https://media.brightdata.es/2026/09/Multimodal-Web-Scraping-with-MiniMax.png) ](https://brightdata.es/blog/datos-web/multimodal-web-scraping-with-minimax "Scraping Web Multimodal con MiniMax")

 [Datos web



 ![Antonello Zanini](https://media.brightdata.es/2022/12/Antonello-Zanini-2-50x50.jpg)

Antonello Zanini

Technical Writer





### Scraping Web Multimodal con MiniMax

Combina Bright Data Web Unlocker con la visión de MiniMax M3 para extraer datos estructurados de imágenes y capturas de pantalla de páginas web.



 09-Sep-2026

 5 min de lectura

 ](https://brightdata.es/blog/datos-web/multimodal-web-scraping-with-minimax)

 [ ![The 10 Best CLI Tools for Codex in 2026](https://media.brightdata.es/2026/08/The-10-Best-CLI-Tools-for-Codex-in-2026.png) ](https://brightdata.es/blog/ai/best-cli-tools-for-codex "Las 10 mejores herramientas CLI para Codex en 2026 – Probadas y clasificadas")

 [AI



 ![Daniel Shashko](https://media.brightdata.es/2022/04/Daniel-Shashko-2-50x50.png)

Daniel Shashko

Web Data &amp; AI Expert





### Las 10 mejores herramientas CLI para Codex en 2026 – Probadas y clasificadas

Las 10 herramientas CLI que hacen a Codex más rápido y capaz, comenzando con la Bright Data CLI para acceso web real desde dentro del sandbox.



 06-Sep-2026

 24 min de lectura

 ](https://brightdata.es/blog/ai/best-cli-tools-for-codex)
