VB .Net navigate each link and get a specific url

Viewed 59

I'm having trouble using the web browser in VB .NET to navigate a list of URL's inside a multiline textbox, wait for them for load and get a specific URL (should contain a specific word).

What I have until now:

Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click

    Dim webClient As New System.Net.WebClient


    'Dim htmlDoc As New HtmlAgilityPack.HtmlDocument()
    For Each strLine As String In TextBox4.Text.Split(vbCrLf)
        Console.WriteLine("Turning False")
        Console.WriteLine("----")
        WebBrowser1.Navigate(strLine)
        Console.WriteLine("Waiting for navigation - " & strLine)
        Console.WriteLine("Navigated")

    Next
    For Each link In links
        TextBox6.Text = TextBox6.Text & link & vbCrLf
    Next
    Dim lines As New List(Of String)(TextBox6.Lines)
    For i As Integer = lines.Count - 1 To 1 Step -1
        If lines(i) = lines(i - 1) Then
            lines.RemoveAt(i)
        End If
    Next
    TextBox6.Lines = lines.ToArray
End Sub

Private Sub WebBrowser1_DocumentCompleted(sender As Object, e As WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
    For Each ele As HtmlElement In WebBrowser1.Document.Links
        'Get whatever text there is in the 'href' attribute
        Dim eletarget As String = ele.GetAttribute("href")
        'Add it to the listbox
        If eletarget.Contains("cfsecure") Then
            links.Add(eletarget)
            'Carry on to the next link
        End If
    Next
End Sub

First of all, it seems it doesn't wait until fully loaded. After that, I don't get any link from what I asked (don't know if it's related to the first problem I have or any mistake in my code getting the href with the word "cfsecure").

Private Sub WebBrowser1_DocumentCompleted(sender As Object, e As WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
    For Each ele As HtmlElement In WebBrowser1.Document.Links
        'Get whatever text there is in the 'href' attribute
        Dim eletarget As String = ele.GetAttribute("href")
        'Add it to the listbox
        If eletarget.Contains("cfsecure") Then
            links.Add(eletarget)
            'Carry on to the next link
        End If
    Next
End Sub

What I'm missing here?

0 Answers
Related