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
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
Minecraft HungerGamesWatcher - Inhalt aus InetSeite auslesen?
-
- [ offen ]
-
button421 -
22. Oktober 2012 um 19:52 -
Geschlossen -
Erledigt
-
-
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. -
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
HTML
Alles anzeigen<html> <head> <title>Minecraft Server</title> </head> <body style="font-family: Arial;"> <center> <h1>Serverliste (Minecraft)</h1> <table border="1" style="text-align: center;"> <tr> <th>Servername</th> <th>IP</th> <th>Spieler</th> </tr> <tr> <td>MineCRAFT</td> <td>123.456.789.0</td> <td>5/24</td> </tr> <tr> <td>MineServer</td> <td>192.168.2.119</td> <td>12/24</td> </tr> <tr> <td>HungerGames</td> <td>192.168.2.120</td> <td>23/24</td> </tr> </table> </center> </body> </html>
Nun müssen wir die Informationen mit den String-Befehlen auslesen.
[autoit]
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][autoit][/autoit][autoit]
#include <Array.au3>
#include <String.au3>$sPageContent = BinaryToString(InetRead("http://chesstiger.bplaced.de/table.html"))
[/autoit]
$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)
NextDu 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!
-
@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