Importazione dati da sito web

di il
21 risposte

21 Risposte - Pagina 2

  • Re: Importazione dati da sito web

    Perdonami, sono ignorante in materia.

    Ho questo codice:

    let
        Origine = Web.Page(Web.Contents("https://borse.quifinanza.it/borsa-italiana/azioni_A.html")),
        Data0 = Origine{0}[Data],
        #"Modificato tipo" = Table.TransformColumnTypes(Data0,{{"NOME", type text}, {"ULTIMO", type number}, {"VAR %", type text}, {"MIN", type number}, {"MAX", type number}, {"ORA", type date}})
    in
        #"Modificato tipo"

    Dove inseirsco la linea di codice che mi hai suggerito?

  • Re: Importazione dati da sito web

    23/08/2023 - arietedimarzo ha scritto:


    Perdonami, sono ignorante in materia.

    Io fino a domenica non sapevo nemmeno cos'era quella cosa lì, fa' un po' i tuoi conti.

    Non so da dove vengono quelle righe tutte insieme, io con la “procedura guidata” ho le varie fasi, ultima delle quali era “modifica tipo”. Ora ho capito da dove hai preso tutte le righe insieme e da me è così

    let
        Origine = Web.Page(Web.Contents("...")),
        Data0 = Origine{0}[Data],
        #"Modificato tipo" = Table.TransformColumnTypes(Data0,{{"NOME", type text}, {"ULTIMO", type number}, {"VAR %", type text}, {"MIN", type number}, {"MAX", type number}, {"ORA", type date}}),
        #"Inserita data" = Table.AddColumn(#"Modificato tipo", "Data", each DateTime.Date(DateTime.LocalNow()), type date)
    in
        #"Inserita data"
  • Re: Importazione dati da sito web

    Devo pima fare una premessa.

    Per lo scarico dei dati dal web (titoli azionari) ho dovuto fare diverse query (una per ogni lettera dell'alfabeto) in quanto i dati erano su pagine web diverse.

    quindi mi sono ritrovato con una ventina di query.

    Premesso questo, passiamo al problema, esposto fino ad ora, nei post precedenti.

    Ho preso il codice suggerito da “Philcattivocarattere” e l'ho inserito sulla prima query e il sistema ha inserito correttamente una colonna in più, denominata “data”, con la data del giorno di scarico dei dati.

    Ho quindi messo lo stesso codice sulla seconda query e il sistema , oltre ad inserire la colonna “data”, ne ha inserita un'altra vuota, prima della colonna data

    Ho provato quindi ad inserire il codice anche sulla terza query, ma il sistema si blocca ed evidenzia un errore sulla creazine delle colonne.

    Ho quindi provato a fare altro:
    - ho accodato tutte le query in una nuova query
    - ho inserito una nuova colonna formattandola come data

    Tutto bene, solo che se cambio folder e ritono su questo, il sistema di default mi fa vedere le query che ho scaricato singolarmente e non quella “grande” creata con l'accodamento

    per vedere la query accodata, devo selezionarla

    Ho provato in tutti i modi ad impostare la query “accodata” come principale, ma non ci sono riuscito

    Ho anche provato a creare una nuova query, cercando di scaricare contemporaneamente  tutti i dati da web, ma anche in questo caso non ci sono riuscito

    Creata da nuova query, da web, ho inserito tutti il link di riferimento, ma il sistema non carica nulla

    Come posso fare quindi a creare una solo query, scaricando i dati provenienti dal web da diverse pagine?

    Spero di esser riuscito a spiegarmi

  • Re: Importazione dati da sito web

    Crei una query per ogni pagina, quindi 26, senza aggiungere la colonna della data corrente. Combini/accodi tutte le query in una sola, aggiungi la colonna personalizzata come fatto prima.

    Alcune lettere saranno vuote, vedrai errore nella singola query ma quando le metti tutte insieme non fa storie, semplicemente accodata una query vuota quindi non accoda niente.

    Alla fine, la query combinata delle 26 con aggiunta della colonna della data corrente si riduce a 

    let
        Origine = Table.Combine({#"Table 0", #"Table 0 (2)", #"Table 0 (3)", #"Table 0 (4)", #"Table 0 (5)", 
        #"Table 0 (6)", #"Table 0 (7)", #"Table 0 (8)", #"Table 0 (9)", #"Table 0 (10)", #"Table 0 (11)", 
        #"Table 0 (12)", #"Table 0 (13)", #"Table 0 (14)", #"Table 0 (15)", #"Table 0 (16)", #"Table 0 (18)", 
        #"Table 0 (19)", #"Table 0 (20)", #"Table 0 (21)", #"Table 0 (22)", #"Table 0 (23)", #"Table 0 (25)", 
        #"Table 0 (26)"}),
        #"Aggiunta colonna personalizzata" = Table.AddColumn(Origine, "DataCorrente", each DateTime.Date(DateTime.LocalNow()), type date)
    in
        #"Aggiunta colonna personalizzata"

    (ho spezzato io la prima riga, andando a capo manualmente, per facilitare la lettura, ma il codice originale è tutto dritto)

    Da' ad ogni query un nome significativo, tipo LetteraA, LetteraB … LetteraZ, non come ho fatto io che ho tenuto Table (0) con il progressivo.

    L'aggiunta della colonna personalizzata contenente la data corrente potresti farla anche a livello di singola query e poi fare l'accodamento, fermandoti lì.

    La parte più noiosa è creare le 26 query (a conoscere il VBA di Excel e forse anche un po' di Power Query o quello che è mai, probabilmente si farebbe in un baleno), ma con un Duplica non è poi così lunga come operazione.

  • Re: Importazione dati da sito web

    Si, questo l'ho già fatto, ho creato una query per ogni lettera dell'alfabeto, poi ho accodato tutte le query in una sola

    e infine ho aggiunto la colonna con la data.

    Tutto bene e funziona anche…  :-)

    solo che se navigo tra i diversi folder

    quando torno su quello con le query (folder: matrice_non_toccare), il sistema visualizza il risultato delle query singole,  senza colonna data e non la query accodata

    è anche vero che  per visualizzare quella accodata, è sufficente selezionarla e torna visibile la colonna “data”

    è anche vero che potrei fare la query accodata su un nuovo foglio, risolvendo i problemi.

    Ma, chiedevo…vi è la possibilità di dare una  “priorità” per la visualizzazione della query scelta?

  • Re: Importazione dati da sito web

    25/08/2023 - arietedimarzo ha scritto:


    Si, questo l'ho già fatto, ho creato una query per ogni lettera dell'alfabeto, poi ho accodato tutte le query in una sola

    Vero, ho riletto solo ora il post, avevi già fatto tutto da solo. Occhio che hai postato un'immagine, dopo la riga che ho quotato, ma non si vede. Magari non è così fondamentale.

    se navigo tra i diversi folder…quando torno su quello con le query (folder: matrice_non_toccare)

    oh… adesso ci siamo! Tu per folder intendi le varie schede che ci sono in un file di Excel. Quelli si chiamano fogli, non folder. Folder è “cartella” in inglese e di solito si riferisce a quelle che ci sono nel filesystem. 

    è anche vero che potrei fare la query accodata su un nuovo foglio, risolvendo i problemi.

    Ma, chiedevo…vi è la possibilità di dare una  “priorità” per la visualizzazione della query scelta?

    Non c'ho capito niente. Metti tutto in un foglio unico?

  • Re: Importazione dati da sito web

    Ciao, si avevo messo tutto su un foglio.

    Ora invece ho messo le query singole su un foglio e quella accodata su un altro foglio.

    In questo modo ho risolto il problema.

Devi accedere o registrarti per scrivere nel forum
21 risposte