Parser für Browsergame

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Lasse
User
Beiträge: 112
Registriert: Donnerstag 3. Februar 2011, 18:25

Hallo und frohe Weihnachten nachträglich,
ich möchte einen Parser für den Versammlungsplatz vom Browsergame Travian schreiben. Ich weiß nur einfach nicht wie ich aus diesen Zeilen sinnvolle Informationen herausbekomme.
Gesucht sind die Informationen, wo welche Truppen sich befinden, wohin sie gehen und wann sie das Ziel erreichen werden.

Es wäre wirklich super wenn ihr mir helft.


8

Hilfe

Versammlungsplatz Stufe 1
Versammlungsplatz Am Versammlungsplatz treffen sich die Soldaten des Dorfes. Von dort aus können die Truppen zum Unterstützen, Plündern oder Erobern, zu einem anderen Dorf geschickt werden.
Kosten für Ausbau auf Stufe 2:
Holz140Lehm205Eisen115Getreide90Getreideverbrauch1
Dauer0:36:20
Es wird bereits gebaut


Übersicht


Truppen schicken


Kampfsimulator


Farmliste
Ankommende Truppen (2)
Celtic Ville Rückkehr von freie Oase(-122|-94)‎
(-126|-93)‎ Phalanx Schwertkämpfer Späher Theutates Blitz Druidenreiter Haeduaner Rammholz Kriegskatapult Häuptling Siedler Held
Einheiten 0 15 0 0 0 0 0 0 0 0 0
Beute
Holz 109 Lehm 109 Eisen 291 Getreide 105
Tragekapazität 614 / 675
Ankunft
in 0:25:58 Std.
um 20:47:24 Uhr
Celtic Ville Rückkehr von freie Oase(-121|-91)‎
(-126|-93)‎ Phalanx Schwertkämpfer Späher Theutates Blitz Druidenreiter Haeduaner Rammholz Kriegskatapult Häuptling Siedler Held
Einheiten 0 15 0 0 0 0 0 0 0 0 0
Beute
Holz 126 Lehm 126 Eisen 124 Getreide 299
Tragekapazität 675 / 675
Ankunft
in 0:50:54 Std.
um 21:12:20 Uhr
Truppen unterwegs (1)
Celtic Ville Heldenabenteuer (-116|-100)
(-126|-93)‎ Phalanx Schwertkämpfer Späher Theutates Blitz Druidenreiter Haeduaner Rammholz Kriegskatapult Häuptling Siedler Held
Einheiten 0 0 0 0 0 0 0 0 0 0 1
Ankunft
in 0:15:59 Std.
um 20:37:25 Uhr
Celtic Village Freie Oase ausrauben(-123|-92)‎
(-126|-93)‎ Phalanx Schwertkämpfer Späher Theutates Blitz Druidenreiter Haeduaner Rammholz Kriegskatapult Häuptling Siedler Held
Einheiten 0 0 0 5 0 0 0 0 0 0 0
Ankunft
in 0:04:00 Std.
um 11:22:09 Uhr
Truppen im Dorf und in eigenen Oasen (2)
Celtic Ville Eigene Truppen
(-126|-93)‎ Phalanx Schwertkämpfer Späher Theutates Blitz Druidenreiter Haeduaner Rammholz Kriegskatapult Häuptling Siedler Held
Einheiten 199 51 20 49 10 6 4 0 0 0 0
Unterhalt
438 Getreide pro Stunde
Natur Natur's Truppen
Ratte Spinne Schlange Fledermaus Wildschwein Wolf Bär Krokodil Tiger Elefant
Einheiten 0 2 1 0 12 10 6 0 0 0
Unterhalt
0 Getreide pro Stunde
zurück schicken


Held
Abraracourix Gallier
~AG~ Wappen
Dörfer

Celtic Ville
Klein Paris

Startseite Forum Links FAQ - Answers AGB Impressum

© 2004 - 2011 Travian Games GmbH


Serverzeit: 20:21:26

Gold
13

Silber
1713
Plus

Holz 643/14400

Lehm 2147/14400

Eisen 3700/14400

Getreide 2569/7800

Getreideverbrauch 816/906

Celtic Ville
Zustimmung: 100%
BlackJack

@Lasse: Ich vermute mal Du hast wichtige Information hier schon verloren. Das wird doch sicher in HTML gesteckt haben, dessen Struktur beim Erfassen der Information nützlich gewesen wäre.

Edit: Und immer hier dran denken:
Travian Spielregeln hat geschrieben:§2.8. Das Ausnutzen von Fehlern im Spiel ist verboten und wird bestraft. Ebenso das Nutzen von Scripten, Bots oder ähnlichem. Das Spiel darf nur mit einem herkömmlichen, nicht für Travian modifizierten Browser gespielt werden. Ausgenommen hiervon sind Grafikpacks.
Lasse
User
Beiträge: 112
Registriert: Donnerstag 3. Februar 2011, 18:25

Ja und nein,
es steckte in html, aber der Parser soll so einfach wie möglich sein, da ihn auch Spieler von Travian verwenden sollen die keine Ahnung von Quelltext kopieren und ähnlichen haben. Zur Benutzung soll die Seite mit Strg+A und dann Strg+einfg kopiert werden und mit Großschreibung+einfg in ein Browserfenster eingefügt werden. Ich kann aber hier den Quelltext auch zum anschauen schreiben.

http://www.python-forum.de/pastebin.php?mode=view&s=259

EDIT: Es gibt für Travian eine Menge vollkommen legaler Tools, die einen ähnlichen Parser für den Versammlungsplatz verwenden. Travian stellt sogar eine Tagesaktuelle Datenbank mit Informationen zu den Spielern zu verfügung, für Toolentwickler.
BlackJack

@Lasse: Ich glaube nicht, dass Du den Parser so einfach wie möglich haben möchtest. Denn das würde dem kopieren und einfügen vom Text ohne die Zusatzinformationen aus dem HTML widersprechen. Da ist nämlich neben dem HTML selbst noch eine Menge Information in den CSS-Klassen, die man prima zum Ansteuern der entsprechenden Inhalte verwenden kann. Als Beispiel für die ankommenden Truppen mit `lxml.html`:

Code: Alles auswählen

from lxml import html


def get_coordinate(node):
    return (
        int(node.cssselect('.coordinateX')[0].text[1:]),
        int(node.cssselect('.coordinateY')[0].text[:-1])
    )


def main():
    document = html.parse('test.html').getroot()
    print 'Ankommende Truppen'
    for i, troop_node in enumerate(
        document.cssselect('.data .troop_details.inReturn')
    ):
        print '%2d. Truppe' % (i + 1)
        print '    Position %r' % (
            get_coordinate(troop_node.cssselect('.units .coordinates')[0]),
        )
        print '    Ankunft in %s um %s Uhr' % (
            troop_node.cssselect('.infos .in span')[0].text,
            troop_node.cssselect('.infos .at span')[0].text.split()[-1]
        )


if __name__ == '__main__':
    main()
Benutzeravatar
Kebap
User
Beiträge: 687
Registriert: Dienstag 15. November 2011, 14:20
Wohnort: Dortmund

Interessanter Ansatz, danke BlackJack! :)
MorgenGrauen: 1 Welt, 8 Rassen, 13 Gilden, >250 Abenteuer, >5000 Waffen & Rüstungen,
>7000 NPC, >16000 Räume, >200 freiwillige Programmierer, nur Text, viel Spaß, seit 1992.
Antworten