View Full Version : Script per monitorare una pagina web
Alpha Centauri
16-02-2024, 18:28
Salve a tutti. Avrei necessità di monitorare una lista su una pagina web per vedere i prodotti che vengono aggiunti/tolti, riportando una serie di dati. Il tutto mi sarebbe comodo averlo su un foglio excel, od eventualmente anche come un alert su telegram. Purtroppo non ho nozioni di programmazione. Secondo voi sarebbe possibile creare uno script di questo tipo? E sarebbe difficile o ci sono delle reference da cui partire, adattando il tutto alla mia situazione?
Come potrei procedere? Quale può essere lo strumento tecnico più idoneo e semplice da utilizzare?
Grazie.
sottovento
16-02-2024, 21:46
Ciao
non so dirti degli script. Io lo risolverei utilizzando Java:
- utilizzerei la class URL per aprire la pagina ed esaminarla. Se la pagina e' complessa, utilizzerei la libreria jsoup;
- utilizzerei la libreria POI di Apache per esportare i dati raccolti su un foglio Excel (creandone uno nuovo o modificandone uno esistente).
Per prima cosa studierei la pagina: e' molto complicata? Fa uso di Ajax per ottenere i dati?
Fai attenzione che spesso molte pagine che sembrano complicate, richiedono i dati tramite Ajax che li restituisce in formato JSON.
In quel caso, se trovi la chiamata ajax, puoi ottenere i tuoi dati JSON, i quali sono facili da manipolare.
Il tuo problema comunque e' interessante, anche se non sono sicuro che possa esistere una soluzione generale
Alpha Centauri
17-02-2024, 21:19
Sottovento, ti ringrazio per la tua risposta articolata. Purtroppo il metodo che proponi è troppo al di fuori dalla mia portata: ci sono troppe cose che non conosco. A partire dalla complessità sella pagina: non saprei. Comunque si tratta di una pagina di un sito e-commerce.
sottovento
18-02-2024, 00:56
Beh, il primo passo e' analizzare la pagina. Se sei fortunato, il lavoro non e' molto.
Se non si tratta di una pagina privata o con dati sensibili, potresti mettere l'URL della pagina qui sotto. Vedi tu.
Comunque non e' complicato: se utilizzi Chrome, apri i dev tool con CTRL-SHIFT-I. Ti si presentera' la console.
Seleziona il tab "Network" e prova a richiedere dei dati: se la pagina effettua delle operazioni ajax le vedrai comparire in quella tabella con tutti i parametri necessari. Quindi, la maggior parte del lavoro e' fatto li.
Se vedi una chiamata interessante, la puoi annotare e rifare "a mano" nel browser, e vedere in quale formato arrivano i dati. Se queste operazioni vanno a buon fine, sei nel caso fortunato.
Se ti va di provarci, fammi (facci) sapere
Alpha Centauri
18-02-2024, 22:46
Beh, il primo passo e' analizzare la pagina. Se sei fortunato, il lavoro non e' molto.
Se non si tratta di una pagina privata o con dati sensibili, potresti mettere l'URL della pagina qui sotto. Vedi tu.
Comunque non e' complicato: se utilizzi Chrome, apri i dev tool con CTRL-SHIFT-I. Ti si presentera' la console.
Seleziona il tab "Network" e prova a richiedere dei dati: se la pagina effettua delle operazioni ajax le vedrai comparire in quella tabella con tutti i parametri necessari. Quindi, la maggior parte del lavoro e' fatto li.
Se vedi una chiamata interessante, la puoi annotare e rifare "a mano" nel browser, e vedere in quale formato arrivano i dati. Se queste operazioni vanno a buon fine, sei nel caso fortunato.
Se ti va di provarci, fammi (facci) sapere
Grazie! Purtroppo è una pagina con login. Voglio comunque studiarmi quanto hai detto e fare una prova, e poi ti farò sapere.
Ps al momento uso edge (ho anche una vecchia versione di firefox che però essendo obsoleta ho dismesso nell'uso, anche se è ancora installata). Dovrebbe avere anche lui il dev tools (QUESTO? (https://learn.microsoft.com/en-us/microsoft-edge/devtools-guide-chromium/overview#Open%20DevTools)). Nel caso mi installo chrome.
Vabbè, ho fatto una prima prova (con edge) e questo è il risultato.
Ho trovato il tab "RETE" sullo strumento di sviluppo di Edge. Ma cosa intendi per: "prova a chiedere dei dati"? Smanettando un po' alla cieca (mi sembra tutto abbastanza complesso), e cliccando su un url nella colonna "Iniziatore" del tab "Rete", che nel nome (dell'url stesso) conteneva "items?queue=encore", mi è uscita una pagina di codice dove in effetti trovavo (fra mille righe di codice). anche il nome dei prodotti. Solo che la lista che mi interessa si sviluppa su più pagine. E da ulteriori tentativi grossolani che ho fatto, mi pare che che nella pagina di codice che si apre ci siano solo i prodotti di quella pagina, quindi non tutta la lista prodotti completa (che a questo punto non so come estrarre). Se poi il tutto sia in Ajax o meno, non sono in grado di stabilirlo.
PS anche questa operazione: "Se vedi una chiamata interessante, la puoi annotare e rifare "a mano" nel browser" mi è poco chiara.
Però ripeto, il nome dei prodotti e l'url delle foto l'ho trovato.
[K]iT[o]
18-02-2024, 23:02
Se si tratta della pagine vine ti ricordo che sono vietati script e automatismi, inoltre ancora più importante la spinosa situazione entrata in vigore con la normativa dac7, e la conseguente possibile (e non ancora chiarita) tassazione di tutti gli articoli che ricevi, con tutte le ipotetiche conseguenze del caso (reddito, partita iva obbligatoria, ecc).
Consiglio di lasciare tutto fermo in attesa di chiarimenti.
Alpha Centauri
19-02-2024, 13:50
Tu sei iscritto al programma Vine?
sottovento
19-02-2024, 15:23
Grazie! Purtroppo è una pagina con login.
Ops, speriamo bene. Non ho mai provato con pagine con login.
Ma cosa intendi per: "prova a chiedere dei dati"? Smanettando un po' alla cieca (mi sembra tutto abbastanza complesso), e cliccando su un url nella colonna "Iniziatore" del tab "Rete", che nel nome (dell'url stesso) conteneva "items?queue=encore", mi è uscita una pagina di codice dove in effetti trovavo (fra mille righe di codice).
Scusa, colpa mia. Mi sono espresso da cani.
In quella pagina dovresti vedere tutte le richieste che il browser va a fare verso il server in seguito alle operazioni che fai nella pagina.
Nei casi dei quali mi sono occupato, potevo fare delle selezioni (tipo di prodotto, caratteristiche, etc.) poi premevo il bottone di conferma e su quella pagina potevo vedere un URL verso il server del tipo www.xxx.com/filtro?caratteristica1=xxx&caratteristica2=yyyy e cosi' via.
A quel punto copiavo quella URL e la incollavo in una nuova TAB, con il risultato che vedevo apparire la lista dei prodotti in formato JSON o XML, formati che immaginerai sono molto semplici da decodificare visto che sono fatti appunto per questo.
La mia speranza e' che questa fortuna si applichi anche al tuo caso.
Ho letto i messaggi di [K]iT[o] e non so nulla riguardo quel sito, chiedo quindi scusa se ho riferito delle cose che possono essere non valide o addirittura vietate.
In altri siti, tuttavia, non sono vietate. Anzi, se il loro obiettivo e' quello di vendere dei prodotti, spesso sono anche benvenute. In quel caso si possono contattare anche gli amministratori del sito per avere piu' informazioni tecniche. Addirittura spesso sono gia' in essere delle soluzioni apposite per questo (web services, etc/).
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.