2013-12-12 1 views
18

Ich versuche, die Scoretabelle von einer Website zu greifen. Das Problem ist, dass die Website JavaScript verwendet, das scheinbar auf document.ready geladen wird.Wie erhält man Webcontent, der mit cURL von JavaScript geladen wird?

Aus diesem Grund scheint es mir nicht gelingen, den Tisch zu bekommen und alles, was ich bekomme, ist die Tasten oben auf dieser Seite.

Irgendwelche Vorschläge oder Ideen, wie man das löst?

+0

Sind Sie file_get_contents versucht ?? – Hackerman

+0

Versuchen Sie Folgendes: http://stackoverflow.com/a/28506533/3063226 – Heitor

Antwort

15

cURL erhalten Sie nur das Markup der Seite. Es werden keine zusätzlichen Ressourcen geladen oder die Seite verarbeitet. Wahrscheinlich möchten Sie sich so etwas wie PhantomJS ansehen. PhantomJS ist ein kopfloser WebKit Browser. Es verfügt über eine eigene API, mit der Sie Verhalten "skripten" können. Sie können also PhantomJS mitteilen, dass die Seite geladen und die benötigten Daten ausgegeben werden sollen.

+0

Vielen Dank für Ihre Antwort. Ich muss dies als JavaScript ausführen und dann den Dump mit dem Befehl exec in einer PHP-Variablen speichern. Ist das korrekt? – m33ts4k0z

+0

Sie müssen eigentlich nicht. Sie können es direkt über die Befehlszeile ausführen. Aber wenn Sie dies verwenden, um es auf einer Website anzuzeigen, dann können Sie 'exec' von PHP verwenden. –

5

Je nachdem, was genau zu tun, Sie versuchen, könnten Sie einfach die JSON-Daten holen, die die Tabelle macht:

http://www.opap.gr/web/services/rs/betting/availableBetGames/sport/program/4100/0/sport-1.json?localeId=el_GR

+0

Danke für Ihre Antwort. Ich werde Vivins Antwort als die Antwort auf meine Frage markieren, aber deine war auch wirklich gut. Ich frage mich, wie hast du den JSON-Anruf gefunden? – m33ts4k0z

+1

@ m33ts4k0z: Kein Problem. Ich habe es gefunden, indem ich den Tab "Netzwerk" in den Chrome-Entwicklertools verwendet habe (dasselbe ist auch in anderen Browsern möglich). Da 'document.ready' involviert war, vermutete ich, dass die Seite die Information wahrscheinlich extern geladen hat. – Lasse

+0

@Lasse: Link funktioniert nicht. –

Verwandte Themen