2013-12-12 7 views
18

Próbuję pobrać tabelę wyników ze strony internetowej. Problem polega na tym, że strona używa javascriptu, który najwyraźniej ładuje się na document.ready.Jak uzyskać zawartość stron internetowych ładowaną przez JavaScript za pomocą cURL?

Z tego powodu nie wydaje mi się, że udało mi się zdobyć stół, a wszystkie dostępne przyciski to przyciski u góry tej strony.

Wszelkie sugestie lub pomysły dotyczące rozwiązania tego problemu?

+0

Czy jesteś starał file_get_contents ?? – Hackerman

+0

Spróbuj tego: http://stackoverflow.com/a/28506533/3063226 – Heitor

Odpowiedz

15

cURL dostanie tylko znacznik strony. Nie załaduje żadnych dodatkowych zasobów ani nie przetworzy strony. Prawdopodobnie chcesz na to spojrzeć na coś takiego, jak PhantomJS. PhantomJS to bezgłowy przeglądarka WebKit. Ma własne API, które pozwala na zachowanie "skryptowe". Możesz więc powiedzieć PhantomJS, aby załadował stronę i zrzucił potrzebne dane.

+0

Dzięki za odpowiedź. Będę musiał uruchomić to jako JavaScript, a następnie zapisać zrzut do zmiennej PHP za pomocą polecenia exec. Czy to jest poprawne? – m33ts4k0z

+0

Nie musisz, właściwie. Możesz uruchomić go bezpośrednio z wiersza poleceń. Ale jeśli używasz tego, aby wyświetlić go na stronie internetowej, to tak, możesz użyć 'exec' z PHP. –

5

W zależności od tego, co dokładnie próbujesz zrobić, można tylko pobierać dane JSON sprawia, że ​​tabela:

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

+0

Dzięki za odpowiedź. Będę oznaczyć odpowiedź Vivinsa jako odpowiedź na moje pytanie, ale twoja również była naprawdę dobra. Zastanawiam się, jak znalazłeś połączenie json? – m33ts4k0z

+1

@ m33ts4k0z: Nie ma problemu. Znalazłem go, używając karty "Sieć" w Narzędziach programistycznych Chrome (to samo jest możliwe w innych przeglądarkach). Ponieważ chodziło o 'document.ready', domyśliłem się, że strona prawdopodobnie załadowała te informacje na zewnątrz. – Lasse

+0

@Lasse: Link nie działa. –

Powiązane problemy