Ottenere e mantenere dati da un gran numero di fonti sul web [chiuso]

1

Per motivi di esercizio, desidero aggregare le schede di prezzo con prezzi provenienti da una serie di siti Web in una forma strutturata (XML, JSON ...). Se ho il controllo su entrambe le parti, come posso fare in modo che gli aggiornamenti dei prezzi siano i più efficienti possibili?

Modifica: per chiarire, sto cercando un approccio più efficiente, in quanto uno script o un'applicazione carica i listini prezzi nella loro interezza da tutte le fonti per gli aggiornamenti.

    
posta James P. 18.02.2012 - 16:16
fonte

2 risposte

1

Raccolta dati:

Un approccio è chiedere a tutti i siti di pubblicare un feed RSS con prezzi in un formato specifico. Potrebbe usare il formato ATOM. Parte del feed RSS di ATOM è che specifica i metadati al suo interno che dice, in sostanza, "non eseguire il checkback più frequentemente di ogni ora" (o qualsiasi altra cosa) che può aiutare a gestire la frequenza con cui eseguire il polling di ciascuno senza dover gestire tali dati centralmente la volatilità dei prezzi può variare a seconda della fonte). Questo è fondamentalmente come funziona un aggregatore RSS (come Google Reader).

Potrebbe anche cercare di rendere i formati dati OData (vedi www.odata.org).

In alternativa, tutti i siti potrebbero chiamare un'API centrale, ma sarà più difficile da gestire e probabilmente più complesso per i siti partner e più incline agli errori.

Manutenzione dei dati:

Un database! Le semplici tabelle di prezzo possono essere sufficienti: distruggi i dati così come sono e archivia in una forma che consente una facile aggregazione. Considera di conservare tutta la cronologia (potrebbe avere un altro valore nell'analisi delle tendenze o altro). Ricalcola gli aggregati in base a una pianificazione o su richiesta. Considera come gestire le "correzioni" ai prezzi (forse un sito di origine può eseguire il ping del sito centrale con un suggerimento di "correzione" fare la presa RSS può essere programmata prima di altrimenti per raccogliere le correzioni).

Non hai menzionato il volume. Set di dati molto grandi possono richiedere più considerazione, ma questo set up dovrebbe portarti molto lontano.

    
risposta data 20.02.2012 - 08:39
fonte
1

Se hai il controllo su entrambi i lati, allora avrei un servizio web a cui tutti i siti dei clienti postano le loro variazioni di prezzo. Se le variazioni di prezzo non sono discrete (ovvero, se nessuno aggiorna solo i prezzi, riscrivono interi articoli / cataloghi / qualsiasi altra cosa), allora dovrai analizzare gli aggiornamenti offerti per ottenere le informazioni sui prezzi. Oppure è possibile invertire la struttura e fare in modo che ogni sito del cliente offra una sorta di servizio "ottieni prezzi aggiornati" che il tuo server centrale possa eseguire il polling su una pianificazione. Nel peggiore dei casi, puoi utilizzare un approccio "screen scraping" e eseguire la scansione del sito, estraendo i prezzi ogni volta che trovi un prodotto / servizio che desideri monitorare.

Sembra che tu abbia solo alcune cose distinte per tenere traccia di (sito, "oggetto" [qualsiasi cosa abbia un prezzo] e prezzo), quindi quasi tutti gli archivi di dati funzionerebbero. Un semplice DB relazionale (MySQL o Derby), un archivio di valori-chiave (come MongoDB o Cassandra) o persino un foglio di calcolo. Penso che dipenda davvero da cosa vuoi fare con i prezzi una volta che li hai.

    
risposta data 20.02.2012 - 17:19
fonte

Leggi altre domande sui tag