🕷️

Web Scraper Básico

🧑‍🍳 Cocinero⏱️ 25 minutos

📋 Prerequisitos sugeridos

  • Python básico
  • HTML básico

Lo que vas a construir

Un web scraper con Python que extrae datos de sitios web automaticamente. Usa requests y BeautifulSoup para hacer peticiones HTTP, parsear HTML, y guardar los datos en archivos o JSON. Muy util para investigacion y recoleccion de datos.


Instalación

uv add requests beautifulsoup4
# o
pip install requests beautifulsoup4

Paso 1: Pídele a una IA el scraper

Necesito un web scraper en Python que:
- Use requests y BeautifulSoup
- Extraiga títulos y enlaces de una página
- Maneje errores de conexión
- Guarde resultados en JSON
- Tenga delay entre requests (ser respetuoso)
- Incluya user-agent apropiado

Dame el código completo.

Código típico

import requests
from bs4 import BeautifulSoup
import json
import time

def scrape_page(url: str) -> list[dict]:
    headers = {
        'User-Agent': 'Mozilla/5.0 (educational scraper)'
    }

    try:
        response = requests.get(url, headers=headers, timeout=10)
        response.raise_for_status()
    except requests.RequestException as e:
        print(f"Error: {e}")
        return []

    soup = BeautifulSoup(response.text, 'html.parser')

    results = []
    for link in soup.find_all('a', href=True):
        results.append({
            'text': link.get_text(strip=True),
            'href': link['href']
        })

    return results

# Uso
data = scrape_page('https://example.com')
with open('results.json', 'w') as f:
    json.dump(data, f, indent=2)

Buenas prácticas

PrácticaPor qué
Delay entre requestsNo sobrecargar el servidor
User-AgentIdentificarte
robots.txtRespetar las reglas del sitio
Error handlingManejar timeouts y errores

Ética del scraping

⚠️ Siempre verifica los términos de servicio del sitio. Algunos prohíben el scraping.


Siguiente nivel

Chat IA Público con Auth — Nivel Chef