Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [cURL] Jak kliknąć JS?
funky_php
post
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 13.09.2011

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
Fifi209
post
Post #2





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

Ostrzeżenie: (0%)
-----


Tyle informacji dałeś (IMG:style_emoticons/default/smile.gif)

Po pierwsze sprawdź jak to działa (strona) bez włączonej obsługi JavaScript
Go to the top of the page
+Quote Post
funky_php
post
Post #3





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 13.09.2011

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
Darti
post
Post #4





Grupa: Zarejestrowani
Postów: 1 076
Pomógł: 62
Dołączył: 6.03.2005
Skąd: Wroc

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
Fifi209
post
Post #5





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

Ostrzeżenie: (0%)
-----


@up
On wyraźnie napisał o Javie a nie o JavaScript (IMG:style_emoticons/default/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.
Go to the top of the page
+Quote Post
funky_php
post
Post #6





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 13.09.2011

Ostrzeżenie: (0%)
-----


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......



Ten post edytował funky_php 20.09.2011, 11:36:16
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 23:50