Salve Alfio96, anch'io ho avuto un problema simile anche se a me i href non servivano
Eccoti le soluzioni:
1) Sei vincolato dall'usare i WebRequest e magari in un'applicazione Console, allora puoi trovare sub stringhe da strData. Le varie funzioni della stringa ti saranno utili, come IndexOf() e Substring(). Ora sta a te continuare.
Volendo puoi usare le Regular Expressions grazie alla classe System.Text.RegularExpressions.Regex però la soluzione è sempre sub stringhe di strData.
2) Puoi stravolgere tutto e usare una variabile HtmlDocument dove i dati sono strutturati. La proprietà Links è la collezione dei tag <A> e ad ognuno basta usare la funzione GetAttribute() ed hai già tutto pronto. Ci sono dei però:
Primo però: La variabile HtmlDocument (così come una HtmlElement) non ha costruttori e l’unica maniera è utilizzare un WebBrowser nell’interfaccia grafica la cui proprietà Document è proprio di tipo HtmlDocument. Quindi il codice si dividerebbe in 2:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
WebBrowser1.Navigate("http://...")
End Sub
Private Sub WebBrowser1_DocumentCompleted(sender As Object, e As WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
Dim doc As HtmlDocument = WebBrowser1.Document
'analisi della pagina
End Sub
perché solo se la pagina è caricata, puoi estrarne i dati e l’unico modo per saperlo è con l’evento DocumentCompleted. (Anche qui continua te)
Secondo però: Il codice così com’è può lanciare eccezioni perché qualsiasi pagina verrà analizzata. Sta a te decidere che fare quando sei offline o ottieni pagine errate come nei normali browser o la pagina non ha l’url che vuoi te.
3) Via di mezzo tra la soluzione 1 e 2, consideri strData come xml invece di html ed usi una variabile XmlDocument:
Dim strData As String = reader.ReadToEnd()
Dim xmlDoc As New System.Xml.XmlDocument()
xmlDoc.InnerXml = strData
'...
Con la funzione GetElementsByTagName("a") trovi i link. Purtroppo non c’è GetAttribute(), ma con un ciclo sulla proprietà Attributes di ogni <a> puoi trovare gli attributi giusti. Anche questo ha un però: il testo di strData deve essere xhtml ad esempio contenere: sì <img …/> e no <img …>