APIs y web scraping: traer datos de afuera sin morir (ni morir legalmente)
Ningun dataset te llega completo: siempre falta una fuente externa. La via noble es una API: el dueno te sirve JSON ordenado, con paginas y reglas. La via del salvaje es el scraping: arrancar datos de HTML escrito para humanos. Este objeto recorre las dos con codigo resuelto —autenticacion, paginacion, limites de peticiones, analisis de JSON anidado, selectores y almacenamiento— y sobre todo las reglas eticas y legales que separan al profesional del demandado.

Anatomia de una peticion
GET con params y cabeceras, resuelto
- Una peticion = URL base + query params + cabeceras. El servidor responde status + cuerpo. Cabecera clave: Authorization para el token; User-Agent para presentarte.
Del JSON anidado a la tabla plana
Problema. La API devuelve cada usuario como {"id": 7, "empresa": {"nombre": "Acme", "ciudad": "MX"}, "posts": [{"titulo": "a"}, {"titulo": "b"}]}. Conviertelo a una fila por usuario con numero de posts.
Aplanar (flatten) resuelto
- Identifica la entidad-fila (usuario) y que campos "bajan" de un nivel (empresa.nombre) vs los que EXPLOTRAN una lista (posts → contar).
Scraping HTML con respeto
BeautifulSoup: del selector a la fila
- robots.txt dice lo PROHIBIDO (Disallow), no lo permitido: leelo primero, respeta crawl-delay, y si los Terminos de Servicio prohiben scraping, no hay tecnica que valide violarlos.
Ruta de ingesta externa
Autoexamen cronometrado (15 minutos)
Recibes HTTP 429. La lectura correcta es:
Si una pagina no aparece en el Disallow de robots.txt, tengo permiso legal de extraer todo.
Para leer la respuesta JSON de una peticion requests se usa la funcion del objeto respuesta.
Empareja status con su accion.
Descargas 1 paginas por segundo durante 5 minutos con rate limit de 1000 peticiones/hora. ¿Cuantas peticiones consumiste?
Video de repaso
Para profundizar
Real Python: HTTP con requests
Tutoriales practicos y gratuitos de la libreria estandar de facto.
Estandar robots.txt
Como leerlo y que NO significa: la etica del crawler bien documentada.
Disena la ingesta de tu proyecto favorito: fuente, API o scraping, volumen estimado, rate limit, almacenamiento crudo y frecuencia incremental. ¿Donde esta el punto de tu diseno que un abogado leerian primero?