Escribe los requisitos de la fuente antes de tocar el código
Este ejercicio cambia un componente de un recolector existente. Anota lo que exige quien consume su salida: información obligatoria, aceptación de contenido histórico y respuesta ante la ausencia de publicaciones utilizables. Son reglas de aceptación de tu código, no prestaciones que aparezcan al obtener una clave. Permiten evaluar la migración por algo más que el éxito de una solicitud HTTP.
La sustitución propuesta cambia la entrada de HTML a JSON, no garantiza un ahorro de tiempo, costes o infraestructura. Mantén la validación de campos, la transformación y la escritura de tu sistema. No supongas que el esquema será invariable o que cada registro incluirá todo el texto, las fechas y los identificadores que obtenías con tu lector anterior.
Recibe una página y distingue los resultados
Prueba https://api.redditscraping.com/v1/posts?subreddit=webscraping&limit=3 con GET y X-API-Key: <clave> o Authorization: Bearer <clave>. La comunidad y el límite acotan una primera inspección, sin prometer tres publicaciones ni relevancia automática. Consulta la documentación para los parámetros y la página Obtener clave API para crear tu cuenta antes del pago.
Separa el fallo de la solicitud, la respuesta exitosa vacía y los registros pendientes de validar. No inventes una publicación en blanco para que continúen las etapas siguientes. Si falta un valor obligatorio, conserva la respuesta original y el motivo del rechazo. Una exclusión decidida por tu aplicación no es un error de la API; mantén esa diferencia en los diagnósticos.
Normaliza después de aceptar el registro
Guarda el cuerpo original de la respuesta antes de transformarlo. Valida data y recorre solo los registros realmente presentes. Define una correspondencia explícita entre los campos recibidos y las columnas de tu aplicación. Distingue un campo ausente, un valor vacío y un cero; no reemplaces todos los casos por un mismo valor que pueda convertirse después en una observación falsa.
Si el consumidor trabaja con texto, conserva el recibido junto a su versión normalizada localmente. Aplica solo las transformaciones necesarias, como sus reglas de espacios, y registra la versión de esas reglas. No conviertas texto ausente en una observación vacía. Conserva el identificador disponible para comparar; al eliminar duplicados, deja constancia de la decisión local sin atribuir al archivo una garantía de unicidad.
Pon límites a la ejecución del recolector
limit y page van de 1 a 100. El orden interno _doc no es cronológico, de relevancia o puntuación; una ordenación local solo reorganiza lo recibido. Guarda parámetros, momento de recuperación y página junto a cada respuesta. Si deduplicas por un identificador observado, conserva los conflictos para revisarlos: más páginas o intervalos menores no demuestran un archivo completo ni resultados únicos.
Lee total con relation: eq es un total exacto de la consulta, gte una cota inferior y unknown un total no fiable, posiblemente null. No conviertas desconocido en cero ni un total exacto en prueba de descarga completa. Informa las publicaciones procesadas, los campos ausentes y las exclusiones para delimitar qué puede hacer el nuevo proceso.
Repite la transformación con la respuesta guardada
Para comprobar una nueva versión del transformador, utiliza como entrada una respuesta ya guardada. Así separas un cambio de código de un resultado distinto en una consulta nueva. Compara aceptaciones, rechazos y respuestas vacías con los requisitos declarados. Tú eliges nombres, plazos de conservación y permisos de los archivos. Guardarlos localmente no crea una instantánea en el servidor ni garantiza recuperar después los mismos registros.
Decide qué parte del recolector puedes retirar
¿Qué puedes retirar? La descarga de HTML y los selectores dedicados únicamente al material histórico aceptado por la nueva entrada. ¿Qué conservas? Programación, validación, normalización, almacenamiento y explicación de ausencias. Si el recolector también debía observar una página actual, esa necesidad sigue pendiente. Documenta el alcance del cambio antes de activar el siguiente trabajo programado, sin presentar el archivo como una sustitución completa.
Cada recuperación exitosa, incluso vacía o repetida, cuesta un crédito. Consulta los precios para presupuestar pruebas y páginas. Los parámetros inválidos no descuentan saldo y los fallos del origen devuelven la reserva; perder una respuesta puede seguir a un éxito cobrado. /v1/status es gratuito y solo confirma la respuesta HTTP. El archivo no garantiza cobertura, conservación, disponibilidad permanente o resultados inmutables.