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áctica | Por qué |
|---|---|
| Delay entre requests | No sobrecargar el servidor |
| User-Agent | Identificarte |
| robots.txt | Respetar las reglas del sitio |
| Error handling | Manejar 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