1. #1
    Avatar von Snees
    Registriert seit
    18.11.2011
    Beiträge
    1.001
    Thanked 591 Times in 319 Posts

    Standard VB.Net NickCrawler

    Nabend, hatte eben ein wenig Langweile und hab mal eben einen Nick Crawler in VB.Net geschrieben,
    es gibt zwar schon mehrere Sourcecodes von Nick Crawlern, allerdings habe ich nur Codes in C# gesehen...

    Die Geschwindigkeit des Crawlers ist abhängig von eurer Internetanbindung,
    an meinem PC schaffe ich ca. 1 Nick pro Sekunde (40kb/s Downloadrate), an meinem vServer ca. 15 Nicks pro Sekunde.

    Spoiler:

    [hide=10]
    Code:
    Imports System.Net
    Imports System.Text.RegularExpressions
    Imports System.Threading
    Imports System.IO
    
    Module Module1
    
        Private Nicks As New List(Of String)
    
        Sub Main()
    
            Console.Title = "Nick Crawler by Nico @ k-script.cc   |   visit us!"
    
            CWrite("Wieviele Nicks sollen gecrawlt werden?")
    
            Dim zu_crawlen As Integer = Console.ReadLine
    
            CWrite("Beginne nun zu crawlen." & vbNewLine)
    
            CWrite("Nicks gecrawlt: ")
    
            crawl(zu_crawlen)
    
            CWrite(vbNewLine & "Vorgang abgeschlossen. ")
    
            Save_Nicks()
    
        End Sub
    
        Sub Save_Nicks()
    
            CWrite("Sollen die Nicknamen in einer .txt Datei gespeichert werden? (Die Datei wird vorher geleert.) (y/n)")
    
            Dim Antwort As String = Console.ReadLine
    
            If Antwort = "y" Then
    
                Using writer As StreamWriter = New StreamWriter("nicknames.txt")
    
                    For Each nickname In Nicks
    
                        writer.WriteLine(nickname)
    
                    Next
    
                End Using
    
                CWrite("Nicks wurden gespeichert. Programm beendet in 3 Sekunden!")
    
                Thread.Sleep(3000)
    
                Environment.Exit(0)
    
            Else
    
                CWrite("Nicknamen werden nicht gespeichert. Programm beendet in 3 Sekunden!")
    
                Thread.Sleep(3000)
    
                Environment.Exit(0)
    
            End If
    
        End Sub
    
        Sub crawl(ByVal Anzahl As Integer)
    
            Dim i As Integer = 1
    
            Dim client As New WebClient
    
            Do While i <= Anzahl
    
                Dim Quelltext As String = client.DownloadString("http://photo.knuddels.de/photos-rate.html")
    
                Dim Nickname As String = String.Empty
    
                Nickname = Regex.Match(Quelltext, "name=""nickname"" value=""(.+?)"">").Groups(1).Value
    
                If Nickname.Contains("#") Or Nickname.Contains("&") Then
    
                Else
    
                    If Nicks.Contains(Nickname) Then
    
                    Else
    
                        Nicks.Add(Nickname)
    
                        Console.Write(Nickname & " (" & i & "), ")
    
                        i += 1
    
                    End If
    
                End If
    
            Loop
    
        End Sub
    
        Sub CWrite(ByVal text As String)
    
            Console.ForegroundColor = ConsoleColor.Green
    
            Console.WriteLine(text)
    
            Console.ForegroundColor = ConsoleColor.White
    
        End Sub
    
    End Module
    [/hide]

  2. #2

    Registriert seit
    09.11.2011
    Beiträge
    128
    Thanked 141 Times in 52 Posts

    Standard VB.Net NickCrawler

    Du rufst eine Funktion auf, deswegen darfst du die Klammern nicht vergessen, wie z.B. bei Console.ReadLine().

    If Nicks.Contains(Nickname) Then Else, das ist unnötig, dafür gibt es das Not in VB.NET (C#: !)

    Code:
    Dim zu_crawlen As Integer = Console.ReadLine
    Was machst du, wenn der User beispielsweise "abc" eingibt? Dann kriegst du eine Exception, du müsstest die Eingabe des Users noch überprüfen, Integer.TryParse hilft dir weiter.

    MfG

  3. #3
    Avatar von Snees
    Registriert seit
    18.11.2011
    Beiträge
    1.001
    Thanked 591 Times in 319 Posts

    Standard VB.Net NickCrawler

    Bei VB.Net muss man ja nicht Console.ReadLine() schreiben, ich weiß, es wäre besser, bei C# muss man es ja schreiben usw, ich mache es aber meistens nicht..

    Und zu "Dim zu_crawlen as Integer = Console.ReadLine": das Programm gibt dem Benutzer ja vor, was eingegeben werden soll, wenn es unklar ist, kann man Integer.TryParse nutzen und try-catch block einbauen, hier ist ja aber klar, was eingegeben werden soll, wenn der Benutzer abc eingibt ist er es selber schuld!

  4. #4

    Registriert seit
    09.11.2011
    Beiträge
    128
    Thanked 141 Times in 52 Posts

    Standard VB.Net NickCrawler

    Und zu "Dim zu_crawlen as Integer = Console.ReadLine": das Programm gibt dem Benutzer ja vor, was eingegeben werden soll, wenn es unklar ist, kann man Integer.TryParse nutzen und try-catch block einbauen, hier ist ja aber klar, was eingegeben werden soll, wenn der Benutzer abc eingibt ist er es selber schuld!
    Du musst aber Integer.(Try)Parse aufrufen, denn Apfel <> Birne, wenn du verstehst, was ich meine, denn das ist nicht guter Programmierstil.

    MfG

Ähnliche Themen

  1. [Release] Nickcrawler by orion-x
    Von orion-x im Forum Sonstige Knuddels Bots/Software
    Antworten: 0
    Letzter Beitrag: 10.10.2012, 20:19
  2. [Release] Nickcrawler by aquastar
    Von aquastar im Forum Sonstige Knuddels Bots/Software
    Antworten: 7
    Letzter Beitrag: 09.10.2012, 14:31
  3. NickCrawler
    Von Snees im Forum Showroom
    Antworten: 26
    Letzter Beitrag: 06.04.2012, 17:24
  4. Knuddels Nickcrawler / m / pp Spammer
    Von Lyra im Forum Sourcecode
    Antworten: 4
    Letzter Beitrag: 28.06.2011, 22:32
Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.