Code:
Public Class Form1
Public complete As Boolean
Dim EndevonSeiten As Boolean = True
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
Sub SekundenPause(ByVal Sekunden As String)
'Time Stamp berechnen zur jetztigen Zeit + Anzahl der Sekunden die er warten soll
Dim nextsec As Integer = gettimestamp() + Sekunden
'Solang die Uhrzeit noch nicht bei nextsec ist
Do While Not gettimestamp() >= nextsec
'Lass die Form nicht Sterben!
Application.DoEvents()
Loop
End Sub
Function gettimestamp()
Dim date1 As DateTime = New DateTime(1970, 1, 1)
Dim date2 As DateTime = DateTime.Now
Dim ts As TimeSpan = New TimeSpan(date2.Ticks - date1.Ticks)
Return (Convert.ToInt32(ts.TotalSeconds))
End Function
Sub losgehts()
'GESCHRIEBEN FÜR Die Free-Hack.com Community ;)
'Probleme beim Script:
'Man kann seine InternetSpeed noch nicht voll ausnutzen
'Benötigt relativ viel Rechenleistung
'Spuckt manchmal noch Fehler ;)
'Verbesserungen:
'Den Standart Wert von 10 Ergebnissen pro Seite erhöhen
'Deaktivieren der blöden Javascript Meldungen
WebBrowser1.ScriptErrorsSuppressed = True
Dim SeitenArray(1000) As String
Dim Momentane_Seite As Integer = 0
'Erstellen des WebClients()
'Euer Dork oder was auch immer
Dim Suchbegriff As String = suche.Text
'Wird auf True gesetzt sobald sich die Ergebnisse wiederholen
' = Parsvorgang beendet
EndeVonSeiten = False
'Die Ergebnisse der letzten Seite sind hier gespeichert
Dim LetzteGefunden As String = ""
Do While EndevonSeiten = False
'SeitenInhalt der Aktuellen Seite wird ausgelesen; Suchbegriff und Seite in Url einsetzen
'Momentane Seite * 10, da Yahoo die nächste Seite ab Suchtrefferanzahl auflistet und nicht nach Seite
WebBrowser1.Navigate("http://search.yahoo.com/search?p=" & Suchbegriff & "&b=" & (Momentane_Seite * 10) + 1)
'Warten bis Webbrowser1 fertiggeladen ist
'Schönere Form der system.threading.thread.sleep
'Quelltext ist mind. 30k Zeichen lang
'Die restliche Länge wird in der Sekundenpause geladen
Do While WebBrowser1.DocumentText.Length < 15000
'Damit unsere Form nicht abkackt
Application.DoEvents()
Loop
'Der Webbrowser braucht noch kurz
SekundenPause(1)
'QuellText auslesen
Dim Quelltext As String = WebBrowser1.DocumentText
'Boolean der aktiviert ist solang ein Link noch im Code ist (schleife)
Dim temp As Boolean = True
'Anzahl der ValidLinks die gefunden wurden
Dim LinksGefunden As Integer = 0
'Schleife, solang Link vorhanden ist
Dim AlleLinksZusammen As String = ""
Do While temp = True
'Prüft ob noch ein Link im restlichen Quelltext vorhanden ist
'Eigentlich Optional, da davor schon 10 Links gefunden wurden
If Quelltext.Contains("**http%3a//") = True Then
'Vom QuellText wird Der teil bis zum Link rausgelöscht,
'Damit beim Nächsten Schleifenvorgang nicht wieder der gleiche Link kommt
Quelltext = Quelltext.Remove(0, Split(Quelltext, "**http%3a//")(0).Length + 11)
'Hier wird der fertige Link in der Variablen gespeichert
'Link = **http%3a//##LINK##" <- Deswegen wird nach """" = " gesplittet
'und der Teil Vor dem " (split (blabla)(0))
Dim link As String = Split(Quelltext, """")(0)
'Begriffe die in den Links nicht vorkommen dürfen
'Da sie von Yahoo sind
'Hätte man auch schön mit Array und Schleife machen können ;)
If link.Contains("overture") = False Then
'-..-
If link.Contains("ysearchblog") = False Then
' -..-
If link.Contains("yahoo") = False Then
' -..-
If link.Contains("search/cache") = False Then
'Falls ein richtiger Link gefunden wird
LinksGefunden += 1
'Wird Später benötigt
AlleLinksZusammen &= link & vbCrLf
'Speichern noch im Seiten Array (Unnötige Klammen setzen macht Spaß ;))
'Der SeitenArray ist Optional ;)
SeitenArray((Momentane_Seite * 10) + LinksGefunden) = link
'Sobald 10 richtige Links gefunden wurden, Schleife beenden, da Yahoo ja nur 10
'Suchtreffer standartmäßig anzeigt
If LinksGefunden = 10 Then
Überprüfen:
'Überprüfen ob sich die Seiten wiederholen : Letzte Seite überschritten
If LetzteGefunden = AlleLinksZusammen Then
AllesGefunden:
'Vorgang fertig: Letzte Seite erreicht
If Momentane_Seite = 0 Then
MsgBox("Vorgang Abgeschlossen : Keine Ergebnisse gefunden")
Else
MsgBox("Vorgang Abgeschlossen : " & (Momentane_Seite - 1) & " Seiten gefunden.")
End If
GoTo SatzmitX
Else
'Link in die Textbox eintragen
TextBox1.Text &= vbCrLf & AlleLinksZusammen
LetzteGefunden = AlleLinksZusammen
End If
'Zur Sprungmarke Suche auf der Seite Vorbei
GoTo AlleLinksGefunden
End If
End If
End If
End If
End If
Else
'Gefundene müssen noch Überprüft werden, ob es sich dabei um die letzte Seite handelt
GoTo Überprüfen
AlleLinksGefunden:
'Schleife beendet
temp = False
End If
Loop
'Auf zur nächsten Seite
Momentane_Seite += 1
Loop
SatzmitX:
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If Not EndevonSeiten = False Then
'Komplizierter Vorgang(Verstehen nur die Besten)
MsgBox("Programmiert für Free-Hack.com by N4umb3rs1NName")
losgehts()
Else
EndevonSeiten = True
End If
End Sub
End Class