que es un web crawler
This commit is contained in:
parent
2538fa1da3
commit
9769c90995
59
README.md
59
README.md
|
@ -6,6 +6,65 @@
|
|||
- git commit -m "first commit"
|
||||
- git remote add origin https://git.ieslamar.org/gitea/thread4.git
|
||||
- git push -u origin main
|
||||
Un web crawler, también conocido como spider o bot de rastreo, es un programa que navega de manera automática por la web para recopilar información. El objetivo de un crawler es visitar páginas web, extraer su contenido y seguir los enlaces que encuentre en ellas para descubrir y analizar nuevas páginas. A continuación, te explico un algoritmo básico de un web crawler:
|
||||
|
||||
---
|
||||
|
||||
### Algoritmo Básico de un Web Crawler
|
||||
|
||||
1. **Inicialización**:
|
||||
- Crear una lista (cola) de URLs por visitar (normalmente se empieza con una URL de inicio o "seed URL").
|
||||
- Crear una lista (o conjunto) de URLs ya visitadas para evitar duplicados.
|
||||
|
||||
2. **Proceso de Rastreo**:
|
||||
- Mientras la cola de URLs por visitar no esté vacía y no se haya alcanzado el límite de URLs a rastrear:
|
||||
- **Extraer la URL actual**: Obtener una URL de la cola.
|
||||
- **Verificar si fue visitada**: Si la URL ya ha sido visitada, pasar a la siguiente URL de la cola.
|
||||
- **Descargar el Contenido de la Página**: Realizar una solicitud HTTP (GET) para descargar el contenido de la página.
|
||||
- **Analizar el Contenido**: Analizar la página HTML para extraer datos y obtener todos los enlaces.
|
||||
- **Procesar los Enlaces**:
|
||||
- Filtrar y normalizar los enlaces (convertir enlaces relativos en absolutos, eliminar duplicados, etc.).
|
||||
- Agregar los enlaces encontrados a la cola de URLs por visitar, siempre que no hayan sido visitados previamente.
|
||||
- **Marcar como Visitada**: Agregar la URL actual a la lista de URLs visitadas.
|
||||
|
||||
3. **Reglas de Politeness y Frecuencia** (opcional):
|
||||
- Respetar el archivo `robots.txt` del sitio web, que define restricciones de rastreo.
|
||||
- Añadir un retardo o "espera" entre las solicitudes para evitar sobrecargar el servidor.
|
||||
|
||||
4. **Guardar Resultados**:
|
||||
- Almacenar los datos extraídos en una base de datos o archivo, dependiendo de los objetivos del crawler.
|
||||
|
||||
5. **Fin del Proceso**:
|
||||
- Terminar cuando la cola esté vacía o se alcance un número máximo de URLs rastreadas.
|
||||
|
||||
---
|
||||
|
||||
### Ejemplo Simplificado en Pseudocódigo
|
||||
|
||||
```plaintext
|
||||
Inicializar cola_de_URLs con URL_inicial
|
||||
Inicializar conjunto_de_URLs_visitadas como vacío
|
||||
|
||||
Mientras cola_de_URLs no esté vacía y no se alcance el límite:
|
||||
URL_actual = extraer_de(cola_de_URLs)
|
||||
|
||||
Si URL_actual no está en conjunto_de_URLs_visitadas:
|
||||
contenido = descargar_contenido(URL_actual)
|
||||
conjunto_de_URLs_visitadas.agregar(URL_actual)
|
||||
|
||||
enlaces = extraer_enlaces(contenido)
|
||||
Para cada enlace en enlaces:
|
||||
Si enlace no está en conjunto_de_URLs_visitadas:
|
||||
agregar_a(cola_de_URLs, enlace)
|
||||
|
||||
procesar_contenido(contenido) # Guardar o analizar los datos
|
||||
|
||||
esperar_por(unos_segundos)
|
||||
|
||||
```
|
||||
|
||||
Este es el esquema básico de un crawler, pero en entornos complejos, los crawlers se pueden optimizar con técnicas de paralelización, almacenamiento distribuido y mayor control sobre la profundidad de rastreo y priorización de URLs.
|
||||
|
||||
|
||||
## Objetivo del programa
|
||||
- Simular el funcionamiento de un rastreador web (bot crawler)
|
||||
|
|
Loading…
Reference in New Issue