Minecraft HungerGamesWatcher - Inhalt aus InetSeite auslesen?

  • Moin Community, lange war ich nicht mehr online *hust*
    ich spiele immer mehr Minecraft HungerGames, ist nicht schlimm wenn ihr nicht wisst, was das ist :D
    Also, da es sehr schwierig ist, immer genau richtig auf diesem Server zu joinen, ohne dass er schon voll ist, möchte ich ein kleines Programm schreiben, was den nächstbesten Server ausfindig macht, und mich wenn auf diesem Server 10/24 Spieler online sind, mit einem Windows-Ballon und einem Signalton darauf hinweisen, jetzt bitte zu joinen. Außerdem soll in der GUI noch eine Liste sein, wo steht, welchem Server mann jetzt am Besten beitreten kann. Also die beiden Seiten (beide unterschiedliche Serverarten):
    http://www.minecraftsurvivalgames.com ; http://www.minecraftpvp.com/hunger-games
    Von diesen beiden Servern möchte ich jeweils die Statistiken auslesen, mit einem Skript natürlich, und in meiner GUI platzieren, und diese eine Alarmfunktion darauf beschränken. Ich hoffe ihr wisst so ein bisschen, was ich will. Wenn nicht, fragt einfach!
    Danke im Vorraus!
    Euer button421

    Meine fertigen Projekte:
    VirtualCash
    Monopoly Digital

    Daran arbeite ich gerade:
    Einem Skript, womit man ohne Programmierkentisse eigene Programme machen kann (habe ich selber früher gesucht :D ) Stand: ||||||||||||||||||||||||| 6%

  • Hallo button421,

    in den http://www.minecraftsurvivalgames.com/help/terms kann ich nichts erkenen was gegen ein automtisches Auslesen spricht. Beim 2. Server konnte ich keinerlei Regeln finden, bevor du dein Skript schreibst solltest du du dich allerdings vergewissern, dass das automatisierte Auslesen auch dort erlaubt ist.

    Zum auslesen kannst du InetGet/_INetGetSource/InetRead, die Funktionen der IE.au3 oder die Funktionen aus der FF.au3 verwenden. Ich würde es mit einer der 3 erst genannten versuchen. Aus dem Inhalt kannst du dann mit den String...-Funktionen das gewünschte extrahieren.

    mfg autoBert

  • Naja, aber ich will es ja nur privat verwenden. Da ich damit nicht viel anfangen kann, könntest du mir mal bitte einen Beispiel-Skript schicken, mit einer Seite, damit ich weiß, wie das aussehen muss (müsste)?
    Das wäre sehr nett.

    Meine fertigen Projekte:
    VirtualCash
    Monopoly Digital

    Daran arbeite ich gerade:
    Einem Skript, womit man ohne Programmierkentisse eigene Programme machen kann (habe ich selber früher gesucht :D ) Stand: ||||||||||||||||||||||||| 6%

  • InetRead liest den Inhalt einer Website in eine Variable ein. Dieses Wissen setze ich mal voraus. :)
    So, nehmen wir jetzt an, unsere HTML-Seite sieht so aus:

    Source

    Nun müssen wir die Informationen mit den String-Befehlen auslesen. :)
    Hier heißt das Zauberwort entweder StringRegExp oder _StringBetween.
    Ich würde hier eher Zweiteres nutzen.
    Das sähe dann so aus ($sPageContent ist der Seiteninhalt als String):

    [autoit]


    #include <Array.au3>
    #include <String.au3>

    [/autoit][autoit][/autoit][autoit]

    $sPageContent = BinaryToString(InetRead("http://chesstiger.bplaced.de/table.html"))
    $asTableCells = _StringBetween($sPageContent,"<td>","</td>");Alle Informationen, die wir wollen, liegen ja zwischen <td> und </td>.
    For $i = 2 To UBound($asTableCells) Step 3 ;In jedem 3. Arrayeintrag steht die Anzahl von Usern.
    ConsoleWrite("Userzahl auf Server " & (($i - 2 )/ 3) + 1 & ": " & $asTableCells[$i] & @CRLF)
    Next

    [/autoit]

    Du musst einfach nach solchen markanten Textstellen filtern. :)

    lg chess

  • Danke, dass du es mir so besser erklärt hast, werde es mal versuchen und den Skript hier uploaden!

    Meine fertigen Projekte:
    VirtualCash
    Monopoly Digital

    Daran arbeite ich gerade:
    Einem Skript, womit man ohne Programmierkentisse eigene Programme machen kann (habe ich selber früher gesucht :D ) Stand: ||||||||||||||||||||||||| 6%

  • @Chess:
    An soetwas hatte ich mich auchmal versucht mir dem auslesen...
    Jetzt weis ich wenigstens wie es geht :)
    mfg Saguhilla
    Danke :)
    Von meinem aPhone (Android) über TapaTalk gesendet