Domanda Risolto Catturare testo di una pagina web

vitoretto

Utente Silver
4 Agosto 2012
83
30
7
97
Salve , vorrei capire come catturare testi di una pagina web , mi spiego meglio :

Ho una lista di negozi da copiare e incollare sul mio foglio Excel , solo che questi sono posizionati all'interno di una mappa. Come faccio a ""catturare"" i dati che mi servono? (Nome negozio , indirizzo , paese e numero di telefono)

Se non in questo modo , questi sono elencati ma in verticale quindi quando li vado a copiare su Excel escono in questo ordine , esempio :

Nome negozio
Via bla bla
Paese bla bla
Numero di telefono : 9559859385

Vorrei metterli in ordine (esempio):
Nome negozio. Indirizzo
Bla Bla Via Bla.bla

Grazie mille :D
 
  • Mi piace
Reazioni: ZDC
Salve , vorrei capire come catturare testi di una pagina web , mi spiego meglio :

Ho una lista di negozi da copiare e incollare sul mio foglio Excel , solo che questi sono posizionati all'interno di una mappa. Come faccio a ""catturare"" i dati che mi servono? (Nome negozio , indirizzo , paese e numero di telefono)

Se non in questo modo , questi sono elencati ma in verticale quindi quando li vado a copiare su Excel escono in questo ordine , esempio :

Nome negozio
Via bla bla
Paese bla bla
Numero di telefono : 9559859385

Vorrei metterli in ordine (esempio):
Nome negozio. Indirizzo
Bla Bla Via Bla.bla

Grazie mille :D
Ciao @vitoretto, riusciresti a spiegare meglio il tuo problema?
 
Certo @Dazorn , praticamente ti metto qui un esempio : vorrei prendere i nomi di questi store ---> https://www.carthusia.it/store-locator/

Solo che mi si presentano due condizioni : una mappa con tutti gli store situati nel mondo e i nomi affianco. Supponendo che non avessi i nomi affianco (risultati della ricerca) , c'è un modo per trovare l'elenco dei negozi nella sorgente della pagina?

Poi ho chiesto un'altra domanda prettamente out of topic : se volessi copiare i risultati della ricerca in ordine su Excel , come posso fare? Mi escono in verticale , mi spiego :

Esempio di quando li copio su excel :
1--Antho
2-Via
3-Corradini

Invece vorrei una cosa del genere :
1-Antho Via Corradini ecc...
 
Certo @Dazorn , praticamente ti metto qui un esempio : vorrei prendere i nomi di questi store ---> https://www.carthusia.it/store-locator/

Solo che mi si presentano due condizioni : una mappa con tutti gli store situati nel mondo e i nomi affianco. Supponendo che non avessi i nomi affianco (risultati della ricerca) , c'è un modo per trovare l'elenco dei negozi nella sorgente della pagina?

Poi ho chiesto un'altra domanda prettamente out of topic : se volessi copiare i risultati della ricerca in ordine su Excel , come posso fare? Mi escono in verticale , mi spiego :

Esempio di quando li copio su excel :
1--Antho
2-Via
3-Corradini

Invece vorrei una cosa del genere :
1-Antho Via Corradini ecc...
Ciao, presupponendo che tu debba fare questo inizialmente a mano e poi con un software hand-made specifico, ti posso dire che ispezionando la pagina sorgente (tasto destro su un qualsiasi punto del sito e click su Visualizza sorgente pagina) ho visto che la lista in formato HTML che desideri va dalla riga 825 alla riga 5738. Puoi copiarti quell'HTML e successivamente analizzarlo con uno stupidissimo script javascript per estrarre i dati che ti servono e salvarteli in un file .csv.
Se hai dubbi, chiedi pure aiuto :)
 
Questo dovrebbe farlo:

JavaScript:
// Trova gli elementi span che contengono i risultati della ricerca
var results = document.getElementsByName("leftLocation");
// Colonne del CSV
var csv = "NEGOZIO,INDIRIZZO,CITTA,TELEFONO\n";
for (var i = 0; i < results.length; i++)
{
    // Prendi il risultato come testo e dividi per linee
    var text = results[i].innerText.split("\n");
    csv += '"' + text[0] + '","' + text[1].substr(11).trim() + '","' + text[2] + '","';
    // Il telefono non c'e' l'hanno tutti, quindi prenderlo in modo opzionale
    if (text.length > 3)
        csv += text[3].substr(10);
    csv += "\"\n";
}
// Forza il download del file .csv
var a = document.createElement("a");
a.style.display = "none";
document.body.appendChild(a);
a.href = window.URL.createObjectURL(new Blob([csv], { type: "text/plain;charset=utf-8" }));
a.setAttribute("download", "file.csv");
a.click();
window.URL.revokeObjectURL(a.href);
document.body.removeChild(a);

Incollalo nella console del browser quando sei su quel sito.
 
@JunkCoder Sei stato perfetto , grazie!

In questo caso invece? https://www.meyer-pantaloni.it/it_it/ricerca-rivenditori Come dovrei fare?
Sono esempi diversi ma è per capire per le prossime volte come farlo da solo , grazie mille

Questo caso e' completamente diverso essendo una mappa e non una lista testuale. Comunque sia basta vedere le richieste XHR in background per scoprire che carica i dati di tutti i negozi da questo URL: https://www.meyer-pantaloni.it/it_it/rest/all/V1/dealer
Ogni sito e' un caso a parte, dipende strettamente da come e' programmato, non esiste quindi un metodo generico che funzioni con tutti.
 
  • Mi piace
Reazioni: Dazorn
Ragazzi , avrei un altro problema : come faccio a scaricare una lista di (ESEMPIO) ristoranti su TripAdvisor.
Cioè dovrei copiare e incollare quella lista su un foglio Excel (ESEMPIO) : https://www.tripadvisor.it/Restaurants-g187895-Florence_Tuscany.html

Grazie in anticipo

Buona fortuna con tripadvisor, e' un colosso con molte risorse ed hanno tutto l'interesse di bloccare lo scraping, non e' impossibile ma una giornata di lavoro non basta. E poi cosa dovresti incollare, da quella view hai solo il nome del ristorante, il tipo ed una thumbnail, per avere piu' info devi fare come minimo una richiesta per ogni pagina di ristorante presente nelle varie categorie, con la probabile conseguenza di un ban per le troppe richieste in rapida successione e la richiesta di risolvere dei captcha.