Scrivi i requisiti della fonte prima di cambiare codice
Questo esercizio sostituisce un componente di un collector esistente. Annota le esigenze di chi ne usa l’uscita: informazioni obbligatorie, accettazione di contenuti storici e comportamento quando non arriva una pubblicazione utilizzabile. Sono regole di accettazione del tuo codice, non funzionalità ottenute con una chiave. Permettono di valutare la migrazione oltre il semplice successo HTTP.
La modifica proposta sostituisce la lettura di HTML all’ingresso con una risposta JSON. Non garantisce un risparmio di tempo, manutenzione o infrastruttura. Mantieni le verifiche e trasformazioni richieste dall’applicazione. Non presumere uno schema immutabile, campi sempre presenti o corrispondenza con una pagina attuale di Reddit. Se la finalità richiede dati in tempo reale, questo archivio storico non soddisfa quel requisito.
Ricevi una pagina e distingui gli esiti
Esamina GET https://api.redditscraping.com/v1/posts?subreddit=webscraping&limit=3 con X-API-Key: <chiave> oppure Authorization: Bearer <chiave>. Comunità e limite circoscrivono una prima selezione, senza promettere tre risultati o pertinenza automatica. La documentazione spiega i parametri e Ottieni una chiave API la registrazione prima del pagamento. I 100 crediti di prova dipendono dai controlli contro gli abusi di tutta la rete.
Distingui errore della richiesta, risposta riuscita senza record e record in attesa di validazione. Non inventare una pubblicazione vuota per far proseguire le fasi successive. Se manca un valore obbligatorio, conserva la risposta originale e il motivo del rifiuto. Un’esclusione decisa dall’applicazione e un errore API sono eventi diversi; mantieni questa distinzione anche nella diagnostica.
Normalizza dopo aver accettato il record
Salva la risposta originale prima della trasformazione. Valida data e percorri soltanto i record presenti. Definisci una corrispondenza esplicita tra i campi ricevuti e le colonne dell’applicazione. Distingui campo assente, testo vuoto e zero: usare lo stesso valore sostitutivo può creare un’osservazione falsa. I record che non rispettano i requisiti locali devono rimanere disponibili per revisione, senza eliminazione silenziosa o aggiunta di valori presunti.
Per un componente che usa testo, conserva quello ricevuto accanto alla versione normalizzata localmente. Applica soltanto trasformazioni necessarie, come le regole sugli spazi richieste dal componente, e annotane la versione. Non trasformare testo assente in un’osservazione vuota. Mantieni l’identificatore disponibile per confrontare i record. Se rimuovi duplicati, documenta la decisione locale senza attribuire all’archivio una garanzia di unicità.
Delimita l’esecuzione del collector
limit e page vanno da 1 a 100. L’ordine interno _doc non è cronologico, per pertinenza o punteggio; un ordinamento locale riorganizza solo quanto ricevuto. Salva parametri, momento del recupero e pagina insieme alla risposta. Se deduplichi per un identificatore osservato, conserva i casi contraddittori per revisione. Altre pagine o intervalli minori non provano una raccolta completa o priva di ripetizioni.
Leggi total con relation: eq indica il totale esatto della query, gte un limite inferiore e unknown un totale non affidabile, eventualmente null. Non trasformare sconosciuto in zero né un totale esatto in prova di download completo. Riporta record elaborati, campi mancanti ed esclusioni per delimitare ciò che il nuovo processo può realmente fornire e quali esigenze restano insoddisfatte.
Ripeti la trasformazione sulla risposta salvata
Per verificare una nuova versione del trasformatore, usa come ingresso una risposta già salvata. Separi così una modifica del codice da un risultato diverso in una nuova richiesta remota. Confronta record accettati, rifiutati e risposte vuote con i requisiti dichiarati. Nomi, conservazione e permessi dei file sono scelte tue. Il salvataggio locale non crea un’istantanea sul server né garantisce la futura disponibilità degli stessi record.
Decidi quale parte del vecchio collector eliminare
Cosa puoi eliminare? Download HTML e selettori dedicati soltanto al materiale storico accettato dal nuovo ingresso. Cosa rimane? Pianificazione, controlli dei campi, normalizzazione, salvataggio e spiegazione delle assenze. Se il collector doveva anche osservare la pagina attuale, tale esigenza resta aperta. Documenta la portata della modifica prima del prossimo lavoro pianificato, senza dichiarare l’archivio una sostituzione completa.
Ogni recupero riuscito costa un credito, anche vuoto o ripetuto. Consulta i prezzi per includere prove e pagine nel budget. Le richieste non valide non addebitano saldo e gli errori del servizio a monte restituiscono la riserva; perdere una risposta può seguire un successo addebitato. /v1/status è gratuito e conferma solo la risposta HTTP. L’archivio non garantisce copertura completa, permanenza, disponibilità continua o risultati immutabili.