Tecnicamente puoi fare quel lavoro esaminando il codice html delle pagine sorgenti e poi applicando le tecniche di analisi rese disponibili dalla libreria mshtml.tlb , corrispondente alla Microsoft Html Object Library.
Trovi la documentazione qui:
http://msdn.microsoft.com/en-us/library ... 85%29.aspx, voce MSHTML. (MSDN Library- Web Development- Internet Explorer Development- Hosting and Reuse)
Recentemente sono stati pubblicati molti spunti su domande poste dall' utente mpsinf.
Ad esempio con una macro come questa ho riportato su un foglio excel la sintesi di una sintesi del catalogo "lombardo veneto":
- Codice: Seleziona tutto
Sub francobolli()
'
Dim myColl As Object, my2Coll As Object, JJ As Long
Dim I As Long, J As Long, K As Long, myPicUrl As String, myUrl As String
Dim myImg(0 To 300) 'Usato per link alle imagini
Dim myLink(0 To 300) 'usato per i relativi link
'
'Indirizzo di una collezione a caso
myUrl = "http://www.ibolli.it/cat/asi/lveneto/lveneto.php" '<<
Set IE = CreateObject("InternetExplorer.Application")
With IE
.navigate myUrl
.Visible = True
Do While .Busy: DoEvents: Loop 'Attesa not busy
Do While .readyState <> 4: DoEvents: Loop 'Attesa documento
End With
myStart = Timer
Do
DoEvents
If Timer > myStart + 1 Or Timer < myStart Then Exit Do
Loop
'
Sheets("Foglio1").Select
'Azzera immagini e testi esistenti
For Each Pict In ActiveSheet.Shapes
Pict.Delete
Next Pict
Cells.Clear
Cells.RowHeight = 12.75
JJ = 2
'cerca Immagini e descrizioni
Set myColl = IE.document.getelementsbytagname("div")
aaa = myColl.Length
'Fase1, si prelevano i nomi delle immagini e il relativo link
For I = 0 To myColl.Length - 1
If myColl(I).classname = "child" Then
With myColl(I)
Set my2Coll = .getelementsbytagname("A")
bbb = my2Coll.Length
K = 0
For J = 0 To my2Coll.Length - 1
If my2Coll(J).classname = "im" Then
Set dddColl = my2Coll(J).getelementsbytagname("img")
CSource = my2Coll(J).innerhtml
myImg(K) = Replace(Mid(CSource, InStr(1, CSource, " s=") + 4, 999), """>", "")
myLink(K) = my2Coll(J).href
K = K + 1
End If
Next J
'fase 2, si cercano le descrizioni e si importano le immagini
Set my2Coll = .getelementsbytagname("div")
For J = 0 To my2Coll.Length - 1
If my2Coll(J).classname = "ef" Then
aadd = my2Coll(J).getelementsbytagname("a")
Inarr = Application.Match(aadd, myLink, 0)
If Not IsError(Inarr) Then
Cells(JJ, Inarr) = my2Coll(J).innertext
aaa1 = InStrRev(myUrl, "/")
myPicUrl = Left(myUrl, aaa1) & myImg(Inarr - 1)
Cells(JJ + 1, Inarr).Select
ActiveSheet.Pictures.Insert(myPicUrl).Select
If Cells(JJ + 1, Inarr).Width < Selection.Width Then _
Cells(JJ + 1, Inarr).ColumnWidth = (Selection.Width / 5)
If Cells(JJ + 1, Inarr).Height < Selection.Height Then _
Cells(JJ + 1, Inarr).RowHeight = Selection.Height
End If
End If
Next J
Rows(JJ).EntireRow.AutoFit
JJ = JJ + 3
End With
End If
Next I
'
'Chiusura IE
IE.Quit
Set IE = Nothing
'
End Sub
Ho ottenuto un risultato come quello dell' immagine (particolare del risultato)
Uploaded with
ImageShack.usOvviamente il testo puo' essere ulteriormente selezionato e formattato a piacere.
Ho detto che "Tecnicamente" puoi fare quel lavoro, ma credo che legalmente non potrai farlo, in quanto tutte quelle informazioni sono pubblicate sotto una Licenza Creative Commons, che tra le altre condizioni (ti raccomando di consultarle), precisano:
Non opere derivate — Non puoi alterare o trasformare quest'opera, ne' usarla per crearne un'altra
Per questo non potro' aiutarti in aggiunta al "prototipo dimostrativo" pubblicato sopra.
Ciao