Programm lädt erst alle Seiten und dann sucht er Ergebnisse

  • VB.NET
  • .NET (FX) 4.5–4.8

    Programm lädt erst alle Seiten und dann sucht er Ergebnisse

    hallo,

    ich habe bei mir eine komischen Vorkommnis entdeckt.

    Also ich will Proxys mit Ports suchen. Dies mache ich mit einem Textfile, die ich in einer Listbox lade. Diese lasse ich dann seite für Seite durchlaufen, und wenn das Formular komplett geladen worden ist, soll er den Inhalt auf Proxys suchen. Doch er lädt gleich alle Seiten, bzw. es wird mir so angezeigt. und sucht erst dann die Proxys... was ja eig. gar nicht gehen kann, weil nur am schluss die letzte (oder die erste?) Seite geladen worden ist oder?
    Aufbau:
    2x Listboxen - 1x für die Proxys und 1x für die Webseiten
    1x Progressbar
    2x Buttons - 1x Proxy und 1x load
    4x Labels - 2x für anzeigen der gefundenen Proxys und 2x (eigentlich) für den Momentanen Stand, wieviele URL's schon abgearbeitet wurden
    hier mal mein Code:

    VB.NET-Quellcode

    1. Imports System.Text.RegularExpressions
    2. Imports System.Threading.Thread
    3. Public Class Form1
    4. Dim myThread As Threading.Thread
    5. Delegate Sub Pro(ByVal address As String)
    6. Sub run() 'Webseiten sollen durchlaufen werden
    7. Dim e As Integer = ListBox2.Items.Count
    8. Dim f As Integer = 0
    9. If ListBox2.Items IsNot Nothing Then
    10. ProgressBar1.Maximum = ListBox2.Items.Count - 1
    11. For i As Integer = 0 To ListBox2.Items.Count - 1
    12. WebBrowser1.Navigate(New Uri(ListBox2.Items(i)))
    13. f += 1
    14. If i = ListBox2.Items.Count - 1 Then
    15. MessageBox.Show("Finish!")
    16. End If
    17. ProgressBar1.Value = i
    18. Label5.Text = "Current " & f & "/" & e
    19. Next
    20. Else
    21. MessageBox.Show("First load a File!")
    22. End If
    23. End Sub
    24. Sub Prox(ByVal address As String) ' Proxys sollen gefiltert werden und in einer Listbox geladen werden
    25. Dim MC As MatchCollection
    26. Dim Results As New List(Of String) 'Res als List
    27. Dim Curr As String = ""
    28. Dim e As Integer = ListBox2.Items.Count
    29. Dim f As Integer = 0
    30. MC = Regex.Matches(WebBrowser1.Document.Body.InnerText, "([0-9]{4}|[0-9]{3}|[0-9]{2}|[0-9])\.([0-9]{4}|[0-9]{3}|[0-9]{2}|[0-9])\.([0-9]{4}|[0-9]{3}|[0-9]{2}|[0-9])\.([0-9]{4}|[0-9]{3}|[0-9]{2}|[0-9]):([0-9]{5}|[0-9]{4}|[0-9]{3}|[0-9]{2}|[0-9])", RegexOptions.IgnoreCase)
    31. ProgressBar1.Maximum = MC.Count
    32. For i As Integer = 0 To MC.Count - 1 'Schleife durchlaufen
    33. ProgressBar1.Value = i
    34. If Results.Contains(MC(i).Value) = False Then
    35. Label1.Text = "Loading Proxys!"
    36. Curr = MC(i).Value.ToString
    37. ListBox1.Items.Add(Curr) 'Übereinstimmungen in der ListBox eintragen
    38. End If
    39. Next
    40. Label1.Text = "Finished!"
    41. Label3.Text = ListBox1.Items.Count
    42. End Sub
    43. Private Sub load_Click(sender As Object, e As EventArgs) Handles load.Click 'hier werden die URL's der Webseiten geladen
    44. If OpenFileDialog1.ShowDialog = DialogResult.OK Then
    45. Label1.Text = "Loading Textfile ..."
    46. Dim c() As String = System.IO.File.ReadAllLines(OpenFileDialog1.FileName)
    47. ProgressBar1.Maximum = c.Count
    48. For Each d In c
    49. ProgressBar1.Value += 1
    50. ListBox2.Items.Add(d)
    51. Next
    52. Label1.Text = "Textfile loaded!"
    53. End If
    54. End Sub
    55. Private Sub Proxy_Click(sender As Object, e As EventArgs) Handles Proxy.Click 'die Sub wird aufgerufen: run
    56. Call run()
    57. End Sub
    58. Private Sub WebBrowser1_DocumentCompleted(sender As Object, e As WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted ' Prox wird ausgeführt
    59. Dim msd As Pro = AddressOf Prox
    60. msd.Invoke(WebBrowser1.Document.Body.InnerText)
    61. End Sub
    62. End Class


    Er zeigt mit z.B. bei den Labels an, das alle Seiten durchlaufen worden ist, doch dann arbeitet die Progressbar weiter und es dauert auch ein bisschen länger, bis die Proxys zur liste hinzugefügt worden sind

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „ctextrem“ ()