Sto lavorando a un progetto che analizzerà i dati da circa 6.000 siti web. Sto considerando l'utilizzo di un modello server / client in cui il server è responsabile per raschiare i dati e importarli in un database mentre il client accede ai dati.
Per analizzare i dati, sto prendendo in considerazione l'utilizzo di un parser html come HtmlAgilityPack in cui otterrò individualmente il percorso x dei dati che voglio scartare per sito web. (Questo è un compito doloroso, qualsiasi suggerimento migliore è benvenuto) Questi siti non forniscono API, ma alcuni forniscono feed RSS per i dati che voglio analizzare.
Il "server" raccoglierà i dati da tutti i siti in un intervallo prestabilito (ad es. minuti, ore) La mia domanda ora è che cosa dovrei considerare nel portare a termine questa attività a livello di programmazione?
- Dal mio approccio per ottenere il xpath dei dati da ciascun sito Web; Probabilmente finirò per dover creare una classe / funzione per ogni sito web. Quali sono le mie alternative?
- Come posso migliorare le prestazioni del mio programma perché ottenere i dati in modo tempestivo è chiave come nell'uso di tecniche multi-threading, programmazione asincrona, utilizzo della memoria, ecc.
- Quando i dati vengono raschiati e prima che vengano importati, verrà controllato per vedere se esiste nel database. Esiste un modo "migliore" invece di eseguire una query SQL per passare in rassegna ogni nodo restituito da xpath per vedere se esiste?
- Questo progetto verrà scritto in C #, tuttavia sono aperto ad altre lingue quando si tratta del "server". Probabilmente Python?
- Una volta completato, idealmente avrò bisogno di un servizio di hosting per eseguire questo programma. Che cosa dovrei prendere in considerazione in proposito?
Conclusione: sto chiedendo le corrette tecniche di programmazione per realizzare questo progetto.