Recupero dati da javascript online

di il
10 risposte

Recupero dati da javascript online

Ciao a tutti, sono mesi che cerco una soluzione a questo problema poi sono arrivato su questo sito e spero che qualcuno possa aiutarmi.

Ho necessità di prelevare dei dati dal sito **** e incollarli su un mio foglio excel. *****

Il problema che le tabelle restituiscono i dati al variare dei combobox online. Nell'esempio del link al variare della scelta varia la tabella che devo recuperare ma il link in alto rimane identico quindi non riesco a recuperalo con la query classica di excel.

Analizzando la sorgente pagina vedo che gira sotto javascript...

Avrei bisogno di estrapolare tutti i dati ma non so proprio come fare.

Grazie a chi potrà illuminarmi.

MAX

10 Risposte

  • Re: Recupero dati da javascript online

    Si chiama web scraping
    Non e' difficile, ma nemmeno banale.
    Cerca 'silk import.io' (lo fai da web) oppure 'parsehub' (c'e' un tool per pc)
    Se lo vuoi fare da programma (python), cerca 'scrapy'
  • Re: Recupero dati da javascript online

    Grazie 1000 per le info do uno sguardo per capire come posso implementare
  • Re: Recupero dati da javascript online

    Ho dato uno sguardo molto interessante questo metodo. Il problema che come dicevo all'inzio serve un intervento manuale per cambiare la composizione delle tabelle sotto e non credo che col metodo di scarping si riesco o almeno non ho capito come fare.

    Ho provato diversi servizi online ma la vedo dura...

    Qualcuno mi illunina?
  • Re: Recupero dati da javascript online

    Se il contenuto cambia senza ricaricare la pagina è perché presumibilmente vengono effettuate delle chiamate ajax. Queste sono delle normali richieste http di cui puoi vedere tutte le caratteristiche, ad esempio su firefox, usando strumenti->sviluppo web->rete.

    Una volta che vedi l'url a cui viene mandata la richiesta e i parametri passati (e il metodo) ti basta inviare una richiesta uguale (con i parametri opportuni) per ottenere i contenuti desiderati.
  • Re: Recupero dati da javascript online

    Ciao Dvaosta, mi sto facendo una "cultura" sullo scrap, ma devo dire che forse la strada è più semplice perchè come dici te dovrebbe bastare la stringa di richiesta con i paramentri richiesti. Ad esempio ho recuperato questa stringa GET: http://www.cmegroup.com/CmeWS/mvc/Settlements/Options/Settlements//138/OOF?monthYear=EZH17&strategy=DEFAULT&tradeDate=05/27/2016&pageSize=500&_=1464439083940.

    Dovrei applicare delle variabili ad ogni elemento che cambia tipo la data, le scadenze, ecc e recuperare la tabella sotto corrispondente.

    Qualcuno è in grado di darmi una mano?

    Allego uno screenshop della richiesta e risposta da parte del server non capisco se si vede...l'immagine sembra ridotta....
    Allegati:
    19620_bced2aa83c27153f8a716c2e35ecae7b.jpg
    19620_bced2aa83c27153f8a716c2e35ecae7b.jpg
  • Re: Recupero dati da javascript online

    Il mio consiglio è installarti xampp (o prendere un dominio su altervista) e crearti una pagina che lato client presenta un form dove puoi settare i parametri e col quale lanci un'opportuna richiesta GET con ajax. In tal modo recuperi un oggetto json che da quel che ho capito rappresenta la struttura della tabella.
    A questo punto, con una seconda richiesta ajax invii l'oggetto json ad una pagina php, che crea una tabella html ma poi settando l'encoding in modo che venga mostrata come tabella excel (http://webcheatsheet.com/php/create_word_excel_csv_files_with_php.php#excelheader). In questo modo ottieni direttamente il file excel contenente i dati richiesti.
  • Re: Recupero dati da javascript online

    Un pò complicato per la mia esperienza informatica . Non è possibile analizzando i GET come mi hai spiegato sopra implementare una semplice GET URL da VBA che restituisca la tabella corrispondente? Sarà poi mia cura settare delle variabili per cambiare le date, igli anni , ecc...

    Analizzando la GET trovo questo: http://www.cmegroup.com/CmeWS/mvc/Settlements/Options/Settlements//138/OOF?monthYear=EZM16&strategy=DEFAULT&tradeDate=05/25/2016&pageSize=500&_=1464595712049

    Cambiando EZM16 e la data sarei in grado di ricavare le altre tabelle....

    Ma come implemento la richiesta?

    Ho provato quesa sub ma mi da errore

    Sub gethtmltable()
    Dim objWeb As QueryTable
    Dim sWebTable As String
    'You have to count down the tables on the URL listed in your query
    'This example shows how to retrieve the 2nd table from the web page.
    sWebTable = 1
    'Sets the url to run the query and the destination in the excel file
    'You can change both to suit your needs
    Set objWeb = ActiveSheet.QueryTables.Add( _
    Connection:="URL;http://www.cmegroup.com/CmeWS/mvc/Settlements/Options/Settlements//138/OOF?monthYear=EZU16&strategy=DEFAULT&tradeDate=05/27/2016", _
    Destination:=Range("A1"))

    With objWeb

    .WebSelectionType = xlSpecifiedTables
    .WebTables = sWebTable
    .Refresh BackgroundQuery:=False
    .SaveData = True
    End With
    Set objWeb = Nothing
    End Sub
  • Re: Recupero dati da javascript online

    Da quello che capisco l'ulr iniziale è: http://www.cmegroup.com/trading/equity-index/us-index/e-mini-sandp500_quotes_settlements_options.html#tradeDate=05/23/2016

    I parametri del GET li allego...

    Vi prego mi serve una mano...
    Allegati:
    19620_ce882f55a537a7e4cb2e002ee032741d.jpg
    19620_ce882f55a537a7e4cb2e002ee032741d.jpg
  • Re: Recupero dati da javascript online

    Il metodo che ho spiegato sopra l'ho postato perché siamo nella sezione javascript per cui pensavo che volessi una soluzione usando js. Se invece vuoi usare VB immagino che si possa fare usando dei socket oppure delle classi di più alto livello, ma non conosco il linguaggio per cui non posso aiutarti.

    Posso solo dirti che, dal momento che la richiesta è fatta col metodo get, non hai bisogno di fare cose particolari per trasmettere i parametri, ma basta che li concateni all'url, nel formato che puoi vedere nell'url completo della richiesta.
  • Re: Recupero dati da javascript online

    Grazie dei tuoi input forse meglio spostare il 3d nbella sezione VBA...chiederò al moderatore. Grazie ancora
Devi accedere o registrarti per scrivere nel forum
10 risposte