05/01/12 21:44
bibimeravilla96
Salve, sono nuovo del forum e sono quasi sicuro di aver sbagliato sezione, ma vi giuro che non sapevo dove postare,quindi vi chiedi scusa in anticipo se ho fatto questo, veniamo al dunque, allora vorrei fare un programma con Microsoft Visual Basic 2010 Express che prelevi i link da una pagina web e che metta in una ListBox i link trovati, sarebbe meglio se prendesse solo dei determinati link.
aaa
06/01/12 22:03
bibimeravilla96
Ho provato il codice ma non va bene mi da 2 errori i seguenti:
aaa
07/01/12 9:27
ampeg
ci ho messo un'oretta per venirne a capo ... comunque
Per prima cosa abbiamo bisogno di aggiungere al progetto l'oggetto COM "Microsoft HTML Object Library" dal quale useremo l'interfaccia "mshtml.HTMLAnchorElement" per ottenere l'informazione che ci interessa
per fare ciò bisogna selezionare "Aggiungi riferimento" dal menu "Progetto" (ps. io uso la versione in inglese di Visual Studio quindi non so se sono corretti i nomi dei menu)
una volta aperta la finestra dei riferimenti selezionare la scheda "COM" e cercare l'elemento "Microsoft HTML Object Library"... e aggiungerlo al progetto
nell'evento di un Button
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
'Creiamo un nuovo oggetto WebBrowser
Dim wb As New WebBrowser()
'Aggiungiamo l'handler all'oggetto creato
'Questo va fatto perché gli elementi del documento li abbiamo a disposizione solo dopo che il documento ha completato il caricamento della pagina
AddHandler wb.DocumentCompleted, AddressOf wb_DocumentCompleted
'Carichiamo la pagina che ci interessa
wb.Navigate("http:\www.google.it")
End Sub
aggiungiamo il codice nell'evento DocumentCompleted del nostro WebBrowser
Private Sub wb_DocumentCompleted(sender As Object, e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs)
'sender è l'oggetto che ha generato l'evento, nel nostro caso il WebBrowser a cui abbiamo aggiunto l'handler, per poterlo usare dobbiamo fare una conversione esplicita con il CType
'ottengo gli elementi (per Links) contenuti nel documento
For Each he As HtmlElement In CType(sender, WebBrowser).Document.Links
'l'informazione che ci serve è contenuta nell'interfaccia "mshtml.HTMLAnchorElement"... questa interfaccia, importata dall'oggetto COM che abbiamo inserito nel progetto, è "immagazzinata" come oggetto nella proprietà DomElement di ogni elemento presente nel documento
'per poterla utilizzare anche in questo caso dobbiamo fare una conversione esplicita tramite CType
'il dato utile contenente le informazioni dei link della pagina sono ricavati dalla proprietà "href" dell'interfaccia "mshtml.HTMLAnchorElement"
ListBox1.Items.Add(CType(he.DomElement, mshtml.HTMLAnchorElement).href)
'la proprietà innerText, invece, contiene il testo associato al link
'ListBox1.Items.Add(CType(he.DomElement, mshtml.HTMLAnchorElement).innerText)
Next
End Sub
Ultima modifica effettuata da ampeg 07/01/12 11:00
aaa
07/01/12 11:02
bibimeravilla96
Ok grazie mille provo subito....
aaa