Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    6

    [VBA] Prendere dati dalla "Social bar"

    Salve a tutti
    Per la mia tesi di laurea avrei bisogno di alcune informazioni e per ricavarle sto creando una macro VBA per il reperimento dati da pagine web. Fino ad ora è funzionata egregiamente su tutte le cose che mi servivano a parte una: il reperimento dei dati dalla barra social. Mi spiego: In questo articolo http://www.repubblica.it/economia/20...1/?ref=HREC1-5
    abbiamo la barra in cima alla pagina che indica che è stato twittato 198 volte, piaciuto su Fb da 7,2 mila persone e condiviso su G+1 52 volte. Avrei bisogno di reperire questi dati su svariate pagine. Cliccando con il tasto destro sull'elemento e facendo "analizza elemento" noto dal codice che è dentro un "iframe". Allora tramite un codice del tipo getElementsByTagName("iframe") raggiungo l'oggetto. Il problema è che è vuoto. Anche dal codice HTML vedo che non c'è traccia del dato numerico e il paragrafo iframe è vuoto. L'iframe possiede un src e quindi provo ad aprirlo ed analizzarne il codice html ma non ci trovo nessuna delle informazioni volute. Provo a salvare .body.innerText ma al suo interno non ci trovo nessuno di quei numeri. La cosa che non capisco è perché se io, faccio dal browser "cerca" 52 lui mi trova il numero di condivisione di g+1, ma se salvo inner.Text quel numero non esiste. Sono convinto che la soluzione ci sia e sia anche banale, ma finora .

    Grazie in anticipo dell'aiuto

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Con chrome ho trovato

    <div class="gig-comments-count">14 commenti</div>


    <div id="aggregateCount" class="Oy">53</div>


    <p id="count-desc" class="aria">Questa pagina è stata condivisa 200 volte. Visualizza questi Tweet.</p>


    <span class="pluginCountTextConnected">7,3mila</span>
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    6
    Questo riesco a visualizzarlo anche io tramite Explorer facendo "analizza elemento". Ma se salvo il codice HTML quella porzione di codice non c'è. Infatti tramite il codice VBA non riesco a raggiungerlo

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Quale codice utilizzi per salvare l'html?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    6
    Ciao Oregon

    Ho provato a salvare l'HTML sia dal browser che con il codice
    Open "c:\cattura.txt" For Output As #1
    Print #1, oDocument.body.innerHTML
    Close #1
    comunque grazie dell'aiuto

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Quello che interessa sapere è come ottieni la parte

    oDocument.body.innerHTML

    perché potrebbe essere incompleta ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    6
    Utilizzo un metodo che purtroppo mi è stato passato un po' a scatola chiusa
    Dim oBrowser As CInternetExplorer
    Dim oDocument As HTMLDocument
    If (oBrowser.WebNavigate(sURL, "", "30")) Then
    Set oDocument = oBrowser.HtmlDoc
    End If
    Dove CInternetExplorer è un modulo di classe.

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Non so cosa sia quella classe CInternetExplorer né cosa faccia il metodo WebNavigate con i suoi parametri ("30" a cosa serve?) ma, probabilmente non attende correttamente il completamento del caricamento della pagina. Prova a cambiare quel codice e segui i suggermenti, ad esempio, di questo link

    http://vba-corner.livejournal.com/4623.html

    o di altri simili sul web.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    6
    Visto che mi hai messo il dubbio ho appena provato un altro metodo:
    Dim appIE As Object
    Set appIE = GetIE
    With appIE
    .navigate sURL
    .Visible = True
    End With
    Do While appIE.Busy
    DoEvents
    Loop

    Open "c:\cattura.txt" For Output As #1
    Print #1, appIE.document.body.innerHTML
    Close #1
    Function GetIE() As Object
    On Error Resume Next
    Set GetIE = CreateObject("InternetExplorer.Application")
    End Function

    E ancora l'HTML è uguale. Leggevo in rete che l'iframe non è altro che una finestra della pagina web dove viene mostrata un'altra pagina web. Per interrogarlo si dovrebbe utilizzare un codice del tipo

    Set ElementCol = oDocument.getElementsByTagName("iframe")
    For Each coso In ElementCol
    Dim social As HTMLDocument
    Set social = coso.contentWindow.document.body.innertext
    Questo sarebbe fattibile se l'iframe è sullo stesso dominio, ma in quanto non è così mi appare l'errore "accesso negato"
    Queste sono le cose che ho capito dopo 48 ore di navigazione.
    Però a sto punto non capisco perché con "analizza elemento" io riesco a visualizzare non solo il codice dell'iframe ma anche l'inner text, mentre nel html originale non è presente. Quanto apro la pagina web da qualche parte quel codice lo dovrei riuscire a pescare. Tra l'altro se riesco a raggiungere i valori con il comando "trova" dovrebbero essere anche facilmente raggiungibili cn VB.


    Edit: ora guardo quello che mi hai linkato
    Ultima modifica di dax90; 06-03-2014 a 12:09

  10. #10
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    6
    Ho appena provato il metodo linkato, penso che d'ora in poi userò quello perché lo comprendo meglio e sembra funzionare bene, grazie. Tuttavia ancora non funziona. Nell' HTML non è presente quello che mi serve. A questo punto escluderei il fatto che sia un problema di caricamento. Infatti quando salvo o visualizzo l'html dal browser la pagina è caricata completamente, eppure quella porzione di codice non c'è....

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.