Discussione Fattibilità estrazione dati sito web

ReGame

Utente Electrum
24 Novembre 2011
272
34
34
136
Buongiorno a tutti,

Mi è stato richiesto da un collega a lavoro se ci fosse la possibilità di estrarre dei dati da un sito web, di seguito mi spiego meglio:

Il sito in questione è adm.gov.it e i dati da estrarre (niente di illegale) sarebbero quelli nella sezione news
Vedi screenshot in allegato

Queste news sono poi caricate in .pdf quando ci si clicca sopra, ciò che mi occorrerebbe fare è una sorta di programma che tot volte al giorno va a controllare la sezione news e nel caso dovesse uscire un nuovo articolo dovrebbe mandarti una notifica

Grazie in anticipo per l'aiuto

Saluti
 

Allegati

  • Cattura.PNG
    Cattura.PNG
    62.6 KB · Visualizzazioni: 13
Il modo sicuramente c'è, non ho trovato quella pagina dell'immagine nello specifico su quel sito, ti basta trovare dei riferimenti nell'html o nel DOM con cui arrivare al link e al suo testo. Ti faccio un esempio pratico: se c'è un contenitore padre che ha come classe list-link e i link sono rappresentati da una serie di tag a:

JavaScript:
let links = document.querySelectorAll('.list-link a');
for (let i = 0; i < links.length; i++)
{
    let link = links[i];
    console.log("Titolo: " + link.innerText);
    console.log("URL: " + link.getAttribute("href"));
}
 
Il modo sicuramente c'è, non ho trovato quella pagina dell'immagine nello specifico su quel sito, ti basta trovare dei riferimenti nell'html o nel DOM con cui arrivare al link e al suo testo. Ti faccio un esempio pratico: se c'è un contenitore padre che ha come classe list-link e i link sono rappresentati da una serie di tag a:

JavaScript:
let links = document.querySelectorAll('.list-link a');
for (let i = 0; i < links.length; i++)
{
    let link = links[i];
    console.log("Titolo: " + link.innerText);
    console.log("URL: " + link.getAttribute("href"));
}

Ciao JunkCoder, grazie per la risposta
La pagina si trova al seguente link scendendo in fondo alla sezione novità: Sito ADM Accise
Potrei chiederti la cortesia di dare un occhiata, grazie mille in anticipo

Saluti
 
Guarda un po', hanno usato quella classe su tutto il sito, ti basta eseguire esattamente il codice che ho scritto sopra nella console del browser ma a questo link (sono le stesse notizie ma anche più vecchie) per dimostrare che funziona. A quel punto puoi usare direttamente questo codice se nel tuo scraper hai un browser, selenium oppure è in nodejs. Altrimenti dovrai adattarlo un po' con un parser se hai solo l'html e usi un linguaggio diverso da JS.
 
  • Mi piace
Reazioni: ReGame
Guarda un po', hanno usato quella classe su tutto il sito, ti basta eseguire esattamente il codice che ho scritto sopra nella console del browser ma a questo link (sono le stesse notizie ma anche più vecchie) per dimostrare che funziona. A quel punto puoi usare direttamente questo codice se nel tuo scraper hai un browser, selenium oppure è in nodejs. Altrimenti dovrai adattarlo un po' con un parser se hai solo l'html e usi un linguaggio diverso da JS.
Ciao ancora, di nuovo grazie per la risposta

Ho utilizzato il tuo codice nella console ed effettivamente mi restituisce titolo e link di ogni articolo
Ora vedrò un pò come poter portare il tutto su un programmino, mi toccherà studiare il tutto
Hai qualche consiglio da darmi su dove cominciare?

Saluti
 
tot volte al giorno va a controllare la sezione news e nel caso dovesse uscire un nuovo articolo dovrebbe mandarti una notifica

La cosa più semplice per fare questo è realizzare un programma usando uno strumento come selenium, puoi impostare un intervallo di tempo (con sleep ad esempio), navigare all'url delle news, eseguire tramite selenium la prima riga del codice javascript che ho postato e preparare le notifiche in base all'array di ritorno. Per notifica però si possono intendere tante cose, dove e in che modo vorresti riceverla? Questo in ogni caso è un argomento a parte e se hai difficoltà a riguardo è meglio aprire un nuovo thread.
Come linguaggio ti consiglio di usarne uno che è supportato da selenium come C#, Java, Python o NodeJS.
 
  • Mi piace
Reazioni: ReGame