Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

[Excel 2010 & VBA] Leggere Html Da Web

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

[Excel 2010 & VBA] Leggere Html Da Web

Postdi alex_lougher » 15/12/12 12:56

Salve ragazzi, ho riscontrato un problema nell'apertura di un sito, utilizzando VBA e Internet Explorer.

di solito creo un oggetto (internetexplorer.application) , e da quello mi estraggo la stringa del codice HTML(.document.body.innerHTML)della pagina per lavorarci sopra cercando delle sottostringhe ed prelevare i dati che mi servono.

Però su "http://it.onlinecomponents.com/taiyo-yuden-umk325bj106km-t.html?p=12656898" o qualsiasi altra pagina di questo sito, non riesco a leggere tutta la stringa HTML. Qualcuno può aiutarmi?!...


Grazie in anticipo!
alex_lougher
Utente Junior
 
Post: 22
Iscritto il: 06/07/12 09:25

Sponsor
 

Re: [Excel 2010 & VBA] Leggere Html Da Web

Postdi Anthony47 » 15/12/12 19:22

Quando si tratta di pagine create dinamicamente l' analisi del sorgente e' sempre un po' complesso.
Nell' esempio,poi, il sorgente ha circa 217mila caratteri, non so come lo leggi ma potresti superare la capacita' di qualche contenitore.
Facendo l' analisi per tag (o per altri attibuti, dipende dal tuo obiettivi) potresti superare la difficolta', ad esempio ho importato regolarmente 58 (dicasi cinquantotto) tabelle per un totale di 311 dati.

Per aiuto piu' dettagliato dovresti spiegare tra quei dati cosa ti interessa importare.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13891
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [Excel 2010 & VBA] Leggere Html Da Web

Postdi alex_lougher » 17/12/12 18:37

Anthony47 ha scritto:Quando si tratta di pagine create dinamicamente l' analisi del sorgente e' sempre un po' complesso.
Nell' esempio,poi, il sorgente ha circa 217mila caratteri, non so come lo leggi ma potresti superare la capacita' di qualche contenitore.
Facendo l' analisi per tag (o per altri attibuti, dipende dal tuo obiettivi) potresti superare la difficolta', ad esempio ho importato regolarmente 58 (dicasi cinquantotto) tabelle per un totale di 311 dati.

Per aiuto piu' dettagliato dovresti spiegare tra quei dati cosa ti interessa importare.

Ciao
mi interessa il testo dopo "Part No: " ossia "UMK325BJ106KM-T"
il prezzo in base alle quantità, che dovrò confrontare con una mia quantità.
Il numero di di elementi in Stock


Di solito leggevo la pagina html (object.document.body.innerHTML) e inserivo questa stringa in una variabile, e con le funzione Instr() e Mid() riuscivo a prendere i dati che mi interessavano...

In questo caso non so come muovermi...Help me....Illuminami!! :D


Grazie in anticipo!
alex_lougher
Utente Junior
 
Post: 22
Iscritto il: 06/07/12 09:25

Re: [Excel 2010 & VBA] Leggere Html Da Web

Postdi Anthony47 » 17/12/12 23:03

Una volta che hai stabilizzato il "document" lo ispezioni "byID"; guardando il sorgente della pagina, puoi raccogliere quelle informazioni in C2 e sottostanti con
Codice: Seleziona tutto
'Stock status
Set myColl = IE.document.getElementbyid("ContentPlaceHolder1_tdCart")
[C2] = myColl.innertext
Set myColl = IE.document.getElementbyid("ContentPlaceHolder1_lblPartNoSpesification")
'Part Number
[C3] = myColl.innertext
'Prices
Set myColl = IE.document.getElementbyid("ContentPlaceHolder1_divPriceListLeft")
mySplit = Split(Replace(myColl.innertext, Chr(13), ""), Chr(10))
[C4].Resize(UBound(mySplit, 1) + 1) = mySplit

Ho immaginato che l' oggetto contenente l' istanza InternetExplorer sia stata chiamata "IE"; gli ID sono stati desunti dal sorgente e sono validi "oggi", ma possono essere cambiati a piacere dal gestore del sito, quindi e' opportuno tenerli sotto controllo: se cambiano avrai "probabilmente" un run time error nell' istruzione XYZ = myColl.innertext in quanto myColl sara' pari a "Nothing".
Ho detto "probabilmente" perche' invece nell' ipotesi poco realistica che quell' Id venga usato per un altro campo allora non avrai un errore ma un risultato sballato.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13891
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [Excel 2010 & VBA] Leggere Html Da Web

Postdi mpsinf » 14/09/14 16:31

Mi riaggancio a questo 3d in quanto avendo già analizzato in precedenza pagine html con buoni risultati mi ritrovo questa volta in una situazione un po' differente, in quanto il lavoro che dovrei realizzare è quello di entrare in un sito e-commerce e caricare in automatico nel carrello alcuni prodotti. Essendo il sito fatto in ASP e non avendo link differenti in barra ... ossia appare sempre "http://nomesito.com/home.asp" e quindi trovando la situazione un po' scomoda pensavo di realizzare una macro di quelle create con registratore tipo macroscheduler o Mouse Recorder Pro 2... però il problema è che vorrei suddividere le operazioni in blocchi in maniera da richiamarli con un "go to" quando debba eseguire un click mouse in un determinato punto sullo schermo.

Avete qualche soluzione da proporre in merito..?

grazie a tutti e in particolare al grande Anthony47 che ringrazio ancora per gli aiuti dati negli anni. ;)
XP + Excel 2003 Ita
W7 + Excel 2007 Ita
mpsinf
Utente Senior
 
Post: 168
Iscritto il: 03/09/03 18:33

Re: [Excel 2010 & VBA] Leggere Html Da Web

Postdi Anthony47 » 15/09/14 01:51

Bentornato...
Non ho conoscenze sugli strumenti che citi, quindi non sono titolato per dare suggerimenti.
Comunque, come fatto in passato, l' esame del sorgente delle pagine certamente puo' dare indicazioni su come agganciare e far interagire i vari elementi; ad esempio identificato in modo chiaro un hyperlink lo si puo' attivare col comando ".Click", metre il suo tag "<a /a>" indica l' url target, indipendentemente da cosa sara' visualizzato nella barra degli indirizzi di IExplorer.

E' un lavoro di paziente ricerca nel sorgente, analisi e traduzione in comandi vba; poi comincia il collaudo e si riparte...

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13891
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "[Excel 2010 & VBA] Leggere Html Da Web":


Chi c’è in linea

Visitano il forum: Anthony47 e 6 ospiti