Gezielt Daten aus Homepage auslesen

d4riuz

Cadet 3rd Year
Registriert
Sep. 2016
Beiträge
42
Guten Tag,

ich weiß nicht so genau ob ich hier an der richtigen Stelle bin aber ich habe eine Frage bezüglich der Möglichkeit des auslesen von Daten einer Homepage.

Für meine bevorstehende Master-Thesis in Soziologie möchte ich gemeinsam mit einem Kommolitonen den Zusammenhang von Reviews von Computerspielen und den Verkaufszahlen der Spiele erforschen.

Hierfür möchten wir uns 2-3 Spiele mit Early-Acces Status auf Steam auswählen und diese anhand ihrer Bewertungen (positiv wie negativ) auswerten.
Das Problem ist nun folgendes, das Spiel DayZ beispielsweise hat ca 100.000 Bewertungen, wobei ich auf der Homepage von Steam nur etwa 40 angezeigt bekomme und nur durch herunter scrollen der Homepage werden weitere Bewertungen geladen. Um also alle Bewertungen geöffnet zu haben müsste ich eine ganze weile Scrollen.

Nun die eigentliche Frage, ist es möglich ein Programm zu nutzen/schreiben das den Quellcode ausliest und alle Bewertungen Chronologisch in einer Tabelle auflistet mit den Daten: Bewertung positiv/negativ und dahinter dem zugehörigen Text?

Für Hilfe wäre ich super dankbar weil alles per hand in Excel zu übertragen wäre ein ziemlich großer Aufwand was jedoch gemacht werden müsste wenn es keinen anderen weg gebe.

Grüße
d4riuz
 
Nein, dazu müsstest Du Zugriff auf die Datenbank hinter dem Ganzen haben. Da Die Inhalte auch nicht bereits geladen sind, sondern erst - wie Du selber schon geschrieben hast- allmählich geladen werden. Ich weiß auch ehrlich gesagt gar nicht, ob Du die Daten einfach kopieren darfst auch wenn sie natürlich öffentlich zugänglich sind. Aber das wirst dann schon merken.

Ihr wollt ernsthaft alle Nutzerreviews zu einem Game kopieren? Ist das denn erforderlich? Okay geht mich nix an :D
 
Das geht, nennt man "screen scraping" und braucht Programmierkenntnisse und fast immer auch Kenntnisse über html und Javascript
Die Daten werden dann auch nicht per Hand in Excel eingetragen.
 
Wenn alle Daten über eine Webseite verfügbar sind, kann man diese natürlich auch mit einem Programm automatisiert auslesen. Ist für einen Programmierer kein sonderlich schwieriges Unterfangen.
 
Das geht, per web scraping. Ohne Programmierkenntnisse wird es schwierig, vielleicht hilft euch ja so ein Tool:

http://webscraper.io/

Die Tutorials auf der Seite helfen dir vielleicht weiter
 
Zuletzt bearbeitet:
Früher war sowas relativ einfach umsetzbar, da alles reines HTML war, welches Serverseitig generiert und ausgeliefert wurde. Man hatte die fertige HTML-Seite mit allen Ergebnissen gespeichert und lediglich nur nen DOM-Parser rennen lassen und das dann z.b. in Excel konvertiert.

Allerdings geht das heute nicht mehr, da so ziemlich jedes Webportal kein oder nur noch wenig HTML ausliefert. Stattdessen wird jeder Inhalt dynamisch und nur bei Bedarf vom Server mit JavaScript geladen, typischerweise ist das JSON oder ähnliches und dann in das Frontend eingebunden.

Aber selbst wenn du die entsprechende HTTP-URL fürs nachladen herausfindest, kannst du damit nichts anfangen - weil Zugriffe von externen Systemen die nicht in der gleiche Domain sitzen werden sofort blockiert und je nach Portal sogar als Angriff gewertet!

Daher hast du nur eine Möglichkeit:

- Tool zu finden, welches automatisch den Nachladen-Button drückt / runterscrollt solange bis nichts mehr kommt. Aber selbst das ist gefährlich, da dies auch als Angriff gewertet wird - wenn zuviele Requests und kurzen Intervalen abgefragt werden.

Ich würde direkt bei Steam oder so nach bestimmten Informationen nachfragen, wenn es nur um ein paar Zahlen geht kann es sein das die dir direkt helfen können.
 
@Finalspace
Scraping funktioniert auch bei dynamischen JavaScript Seiten.
 
Vielen Dank für die schnellen Antworten, dann werde ich mich mal dran machen jemanden zu finden der mir sowas vielleicht programmieren kann. Bzw. ist es schonmal hilfreich einen Fachbegriff dafür zu haben :)
 
dafür gibts einige möglichkeiten:

JS code injection über die JS console:

var c = setInterval(function(){
document.body.scrollTop = document.body.offsetHeight;
}, 1000);

damit simulierst du einen scroll ans seitenende, dadurch werden die inhalte laufend geladen.
wenn genug geladen ist:

clearInterval(c);

XHR checken:

über die dev tools in firefox oder chrome unter network überprüfen welche URL mit welchen parametern geladen wird, das kannst du dann beispielsweise per VB automatisieren. wichtig: schau dir die HTTP request header an, viele server checken referer, cookies und andere header.
 
Zwar keine Technische Lösung aber:
Drücke mal auf das Mausrad, zieh den Cursor nach unten -> hol kaffee -> fertig :lol:
 
So, ich habe gestern sehr lange rum probiert, aber ein zufriedenstellendes Ergebnis habe ich leider noch nicht.


Ich habe es mit der JS injection versucht und er hat bis ans "Ende" gescrollt. Nur zu immer unteschiedlichen Daten. Daher vermute ich entweder das mich der Steamserver irgendwann blockt, oder nur eine gewisse Anzahl von Reviews geöffnet werden können.

Mir ist in der Konsole jedoch aufgefallen das Steam ihre Reviews immer von einer bestimmten Seite lädt, aber beim öffnen ist diese Seite nur weiß und ich wüsste auch nicht was ich damit anfangen könnte.

Mit dem webscraper.io habe ich gestern nicht lange herum probiert, dafür müsste ich mir mal mehr Zeit nehmen.


@xdave78: genaugenommen geht es bei unserer Untersuchung um den Zusammenhang von Vertrauen bei dem Kauf von Early-Access titeln. Um da etwas brauchbares herauszufiltern möchten wir schauen ob es Krisen bzw. brüche zu sehen sind, die auf bestimmte Kommunikationen seitens der Entwickler etc. zurückzuführen sind.

Beispielsweise wenn ein Spiel dauerhaft positive Rückmeldung hat und plötzlich 20 negative hintereinander. Ob man durch den negativtrend Rückschlüsse auf einen Vertrauensbruch stellen kann, wie ein schlechtes Gameupdate, oder ähnliches.



EDIT:
Also ich hab den Webscraper.io soweit zum laufen gebracht aber hab nun das Problem das er oft zwischendurch aufhört weil er die Page nicht schnell genug lädt und deswegen keine Elemente mehr findet. Habe bereits einen delay von 8000 ms eingestellt aber selbst das hilft nichts :(

EDIT2:
Webscraper lief gerade ne lange Zeit, habe den Delay überall angepasst und hat etwa 17000 Reviews geladen. Hat dann aber wohl abgebrochen, weil die Seite immer mehr Speicher genutzt hat und irgendwann einfach noch langsamer wurde.

Das ist trotzdem schonmal sehr hilfreich, Daten über 1 gesamtes Jahr zu haben.

Nochmal vielen lieben Dank an alle für die schnelle Hilfe!
 
Zuletzt bearbeitet:
Ah verstehe, klingt spannend. Ihr nehmt also die Reviews, legt sie auf ne Timeline und gleicht dies mit Patches/DLCs und sonstigen Fakten zu dem Spiel ab. Also am Beispiel von ARK zB kann ich gut nachvollziehen was das für ein Bild ergäbe.
Na dann viel Erfolg.
 
Zurück
Oben