Seite 1 von 1

Mittels Phyton Daten von Browser Spiel auslesen

Verfasst: Samstag 7. Dezember 2019, 13:59
von leis
Hallo zusammen,

ich spiele Forge of Empires und würde mir gerne etwas mehr Übersicht verschaffen, ich weiß allerdings noch nicht wie ich das genau anstellen kann, daher bin ich hier :-)

Vorweg: Ich möchte nichts automatisieren, keine Produktionen, Angriffe oder sonstiges. Mir geht es rein um das auslesen von Daten, um nicht ganz so "Blind" zu sein - ich liebe Statistiken :-) Daher verstößt hier auch nichts gegen die AGBs, es gibt auch bereits Anbieter die ähnliche Dinge anbieten und von innogames erlaubt sind. Ich will einfach nur wissen, welche Produktion ich wie oft gestartet habe, welche Freunde/Gildies/Nachbarn mir wie oft geholfen oder mich angegriffen haben, bei welchem Nachbarn ich wann, was geplündert habe oder welche Verteidigungseinheiten er eingeteilt hatte.

Immer wenn ich nach Python+Browser+Read Data oder ähnlichem suche, finde ich nur Infos über die komplette automation des Browsers, aber nicht wie ich quasi live beim browsen die Daten auslesen kann.

Ich hoffe ihr könnt mich hier auf den richtigen Weg schubsen, damit ich hier voran komme.

Re: Mittels Phyton Daten von Browser Spiel auslesen

Verfasst: Sonntag 8. Dezember 2019, 20:08
von xXSkyWalkerXx1
Mit dem Modul "requests" kannst du scrappen, also Webseitendaten auslesen und mit "BeautifulSoup" diese in HTML-Code umwandeln.

Vom Vorgehen her musst du erstmal im HTML Code herausfinden welche Daten beim Login benötigt werden (siehe "input" Tags), denn genau diese Daten musst du mit deinem Python Programm an den Server senden (mit Cookie). Du wirst von "requests" die Befehle ".get()" und ".post()" benötigen.
Hatte Mal was für ein BrowserGame geschrieben: OGame, weil ich die ständigen Angriffe satt hatte. Ich hatte also automatisierung drin. :D

*[EDIT]: google nach "python html scrapping" oder "python html crawling"! :)

*[EDIT]:
Das wäre die Login-Seite: https://de.forgeofempires.com/ und so würde der Tag für den Browsernamen aussehen (bei dir etwas anderes möglicherweise, da du bereits registriert bist):

Code: Alles auswählen

<input type="text" id="registration_nickname" name="registration[nickname]" novalidate="novalidate" required="required" autocomplete="off">
Was du dann mittels Python so z.b. "füllen" kannst:

Code: Alles auswählen

session = requests.Session()
session.post(<loginPage>, data={'registration[nickname]':<username>}) #mit benötigten Cookies.
Die Cookies findest du heraus, indem du die bei der Entwicklerkonsole unter "Application" unter "Cookies" schaust, welche ohne Login da sind und welche dann beim Login da sind.
Die, die neu hinzugekommen sind, deren Inhalt musst du bei der Cookieübergabe dann auch verwenden.
Für das Ganze brauchst du auf jeden Fall die Entwicklerkonsole vom Browser.