Oppure

Loading
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 12:19
GN
Dunque, la sezione giusta è .NET world perchè se usi vb express 2010 il linguaggio è vb.net. Per prelevare i link devi parsare l'HTML della pagina, quindi ti consiglierei di leggere questo capitolo totemslair.org/guide/….
aaa
06/01/12 18:55
bibimeravilla96
Scusate ma sono un po inesperto,quindi non è che mi potreste postare un esempio...???:-?
aaa
06/01/12 20:50
GN
Ok te lo scrivo io un esempio:
Dim wb As New WebBrowser() 'oggetto webbrowser, sarebbe un controllo windows forms per visualizzare pagine web ma qui lo usiamo solo per ricavare un HtmlDocument
wb.Navigate("http:\www.pierotofy.it") 'naviga con il webbrowser alla pagina che ti serve (da sostituire a pierotofy)
Dim doc As HtmlDocument = wb.Document 'ricaviamo dal webbrowser questo HtmlDocument, un oggetto che consente di ottenere gli elementi della pagina web
For Each link as HtmlElement In doc.Links 'per ogni elemento link nella pagina
 listbox1.Items.Add(link.Text) 'aggiungiamo alla listbox il testo del link
Next

Per prendere solo determinati link, puoi filtrarli mettendo nel ciclo un IF che controlli che si attengano alle condizioni corrette.
aaa
06/01/12 21:52
bibimeravilla96
Grazie mille lo provo subito e vi faccio sapere..:)
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