Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [cURL] Jak kliknąć JS?
Forum PHP.pl > Forum > Przedszkole
funky_php
Rozumiem to, co jest w samouczku CURL'a dot. logowania, wypełniania formularzy itp.
Ja mam takie coś:

  1. onclick="Event.fire(this, 'rich:datascroller:onscroll', {'page': 'last'});"


zamiast 'last' może być 1.....n i z tym poradzę.

Chcę zrobić:
0. pobierz zawartość strony nr 1.
1. kliknij w 1
2. Pobierz zawartość strony nr n++

Co mam wysłać do serwera?

F.
Fifi209
Tyle informacji dałeś smile.gif

Po pierwsze sprawdź jak to działa (strona) bez włączonej obsługi JavaScript
funky_php
Jest strona, której jedną ramkę zajmuje wynik działania kilku skryptów jawy. W tej ramce pojawiają się rekordy bazy ( 20 sztuk) jeden pod drugim, jako odnośniki do całego rekordu ( dla ustalenia jest a href z nazwą firmy a jego kliknięcie wyświetla pełen opis firmy ) pod tymi rekordami pojawia się tradycyjnie, jak u wujka Google " Pierwszy 2 3 4 ... Ostatni " kliknięcie na " 2 " pokazuje kolejne 20 rekordów, ale odświeża się tylko ramka z rekordami. Strona nie. Zawartość strony nie ma znaczenia. Po wyłączeniu JS klikanie na cyferki nie działa. A href'y z listy 20 wyświetlonych działają. Chcę napisać mechanizm wyłuskujący wszystkie a hrefy z tej ramki. Potem ( ale to już nie jest przedmiotem pytania ) z tych ahrefów pobrać wszystkie dane tych firm. Problemem dla mnie jest zmiana strony na kolejną, czyli kliknięcie 2,3 ...
Tak

<td class="dr-dscr-inact rich-datascr-inact " onclick="Event.fire(this, 'rich:datascroller:onscroll', {'page': '10'});">10</td>

wygląda cyferka 10 do kliknięcia, aby pojawiła się 10 strona.

F.
Darti
PHP nie "klika".
Musisz na piechotę rozszyfrować metodę działania skryptu javascript i odpowiednio to "obejść" - np sprawdzić wg jakiego schematu javascript wczytuje kolejne podstrony iframe'a albo div'a i te podstrony podać np curlowi w php
Fifi209
@up
On wyraźnie napisał o Javie a nie o JavaScript wink.gif

@autor
http://forum.php.pl/style_images/kot-kotara.jpg

I zastosuj się do rad, zobacz jak działa ten JS, zobacz firebugiem czy innym narzędziem jak i kiedy odpytuje skrypty php i zrób to samo w curl.
funky_php
Cytat(Fifi209 @ 14.09.2011, 17:09:20 ) *
I zastosuj się do rad, zobacz jak działa ten JS, zobacz firebugiem czy innym narzędziem jak i kiedy odpytuje skrypty php i zrób to samo w curl.


Pomogłeś. Dzięki. Wiem, co wysyła. Nie wiem jak to wysłać curl'em.

To co wysyłane jest do serwera (POST):
AJAX:EVENTS_COUNT= 1
AJAXREQUEST= _viewRoot
ajaxSingle= j_id79:drugList:j_id88
j_id79= j_id79
j_id79:drugList:j_id88= 3
javax.faces.ViewState= j_id3
( znaki '=' dodałem ja, aby było widać parametry)

Źródło jest takie:
AJAXREQUEST=_viewRoot&j_id79=j_id79&javax.faces.ViewState=j_id3&j_id79%3AdrugList%3Aj_id88=3&ajaxSingle=j_id79%3AdrugList%3Aj_id88&AJAX%3AEVENTS_COUNT=1&

Jak wysyłam to:
curl_setopt($ch, CURLOPT_POSTFIELDS, createPostString($postFields));
i poszczególne parametry jako elementy tablicy, jak w tym przykładzie z samouczka - odbieram 300 bajtów pliku, który powinien mieć około 2,4kb

tak samo jak wysyłam http://www.strona?AJAXREQEST=...&...&.... przez curla - efekt jest identyczny - curl odbiera 300 bajtów.

Jak to wysłać?
Jeszcze jedną podpowiedź poproszę....

F.

EDIT [2011-09-20 12:27] Dodając wszystkie możliwe nagłówki z zapytania wysyłanego do serwera przez przeglądarkę doszedłem do sytuacji, w której zwraca mi CAŁĄ stronę bez tej ramki, która jest dla mnie najistotniejsza, czyli tej, która się zmienia w chwili klikania na poszczególne strony. Tu mi zwraca stronę w HTML'u , a firebug pokazuje , że przy poprawnym wykonaniu tego na stronie zwraca TYLKO ramkę odświeżaną przez przeglądarkę w XML'u.... Tej właściwej zawartości nigdy nie udało mi się uzyskać z poziomu CURLA. A na stronie - za każdym razem......

To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.