![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 23.09.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Potrzebuję pobrać za pomocą skryptu PHP źródło strony, która jest napisana w AJAX-ie. CURL i FILE_GET_CONTENTS nie zdają egzaminu, ponieważ pobierają źródło strony, które zostało wygenerowane przez serwer a ja chcę pobrać źródło tego co jest wyświetlane przez przeglądarkę. Dla przykładu: Dane, które otrzymuję po użyciu zarówno CURL jak i GET_FILE_CONTENTS wyglądają tak: <td id="td_desertion"></td> Natomiast wynik wyświetlany w przeglądarce wygląda tak: <td>236</td> i właśnie ten drugi próbuję bezskutecznie otrzymać. Za wszelką pomoc będę wdzięczny. |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Jakiś firebug i zobacz jakie żądania lecą do serwera i je odtwórz w curlu
-------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 248 Pomógł: 38 Dołączył: 29.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem czy to pomoże, ale weź pod uwagę, że przeglądarka wyświetla dane wygenerowane ( a raczej zwrócone) właśnie przez serwer. A potem już sama sobie 'mieli' css, js i wyświetla wynik, czyli wszystko po pobraniu danych od serwera dzieje się po stronie klienta(przeglądarki). Jeśli, np. w nagłówku strony jest bezwględny link do styli, to te style przy wyświetlaniu zostaną uwzględnione.
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 23.09.2011 Ostrzeżenie: (0%) ![]() ![]() |
Jestem totalnie bezradny, więc podam co chcę zrobić.
mam taką stronkę: http://clan.z8games.com/charstat_cf.aspx?usn=12093382 Tworzę statystyki i muszę pobrać dane ze strony. Wcześniej robiłem to bez problemu ale ostatnio admin strony przeszedł na ajaxa i się wszystko sypnęło. Chodzi mi o to żeby wyciągnąć np. liczbę headshotów, która wyświetla się jako 8569 a w kodzie źródłowym jest jako id="td_headshots". Nie wiem jak ustanowić zapytanie żeby powiązać te dwie rzeczy w jedno i w wyniku otrzymać liczbę zamiast id. Nie wiem kompletnie jak się do tego zabrać. Jak mnie ktoś naprowadzi to pewnie dalej już jakoś pójdzie. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Sprawdź do jakiego pliku odwołują się te żądania ajax (firebug w Fx, lub narzędzia developerskie opera,chrome) po czym pobierz dane dokładnie na tej samej zasadzie jak pobierałeś do tej pory.
-------------------- Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta). |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 23.09.2011 Ostrzeżenie: (0%) ![]() ![]() |
Wysłany: Pon Wrz 26, 2011 12:15 pm Temat postu:
-------------------------------------------------------------------------------- Pobrałem dane, zdekodowałem ale w wyniku dostaję NULL, które według dokumentacji oznacza, że json nie może być zdekodowany lub gdy dane są głębiej niż limit rekurencji. Czyli w tym przypadku oznacza to, że nie da się wyciągnąć danych czy trzyba użyć innego sposobu niż dekodowanie za pomocą json_decode? Zrobiłem to tak:
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
jejkus.... zanim zabierzesz się za json, to sprawdź, czy link, który zapodajesz w ogóle działa.....
Wstaw swój link do przeglądarki i zobacz jak wygląda ten Twój "JSON" Albo najlepiej zrób: var_dump($odebranytekst);
Powód edycji: [nospor]:
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 23.09.2011 Ostrzeżenie: (0%) ![]() ![]() |
Po potraktowaniu firebugiem wyszło, że POST-em muszę przekazać dane {"usn":12093382} na adres http://clan.z8games.com/clanServices.asmx/...layerPublicInfo, więc tak to właśnie zrobiłem.
jak zarzucę var_dumpa na $odebranytekst tak jak mówiłeś to w wyniku dostaję: string(217)"Object move to here", gdzie here przekierowuje na errora 404 |
|
|
![]()
Post
#9
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
No, więc nic dziwnego, że odkodowanie JSON ci nie działa - od tak banalnych rzeczy trzeba zaczynać a nie szukać błędu nie wiadomo gdzie.
Pewnie na stronie jesteś zalogowany i ajax oczekuje od Ciebie zalogowania. Zaś używając cURL się nie logujesz. Może też być, że stronka sprawdza czy to ajax - musisz więc wysłać cURLem odpowiednie ajaxowe nagłówki. -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 23.09.2011 Ostrzeżenie: (0%) ![]() ![]() |
Używając firebuga nie byłem zalogowany, więc to chyba nie to. Dane, które probuję pobrać są ogólnie dostępne.
Co do ajaxowych nagłówków to szczerze mówiąc nie mam pojęcia o czym mówisz :/ |
|
|
![]()
Post
#11
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Po pierwsze:
curl_setopt($ch, CURLOPT_POSTFIELDS, array('usn'=>12093382)); Nie wiem skądżeś swój sposób na postfields wynalazł. Po drugie: zapodaj linka do strony gdzie jest ten ajax, co trzeba kliknąć by ten ajax poszedł, to się sprawdzi resztę. -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 30.06.2025 - 22:05 |